<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Win32k: fullscr.c 文件参考</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Win32k
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- 制作者 Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'搜索');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','搜索');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('a00689.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#define-members">宏定义</a> &#124;
<a href="#func-members">函数</a> &#124;
<a href="#var-members">变量</a>  </div>
  <div class="headertitle">
<div class="title">fullscr.c 文件参考</div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &quot;<a class="el" href="a03629_source.html">precomp.h</a>&quot;</code><br />
<code>#include &quot;ntddvdeo.h&quot;</code><br />
</div>
<p><a href="a00689_source.html">浏览源代码.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
宏定义</h2></td></tr>
<tr class="memitem:a18707a2877a1444421decffc9e2efb3e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00689.html#a18707a2877a1444421decffc9e2efb3e">NOSWITCHER</a>&#160;&#160;&#160;((HANDLE)-1)</td></tr>
<tr class="separator:a18707a2877a1444421decffc9e2efb3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
函数</h2></td></tr>
<tr class="memitem:a317b5986c94a0fe6aec5cd38123cf2a3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00689.html#a317b5986c94a0fe6aec5cd38123cf2a3">SetVDMCursorBounds</a> (LPRECT lprc)</td></tr>
<tr class="separator:a317b5986c94a0fe6aec5cd38123cf2a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2cf7d13f9206082622d1c7c42dd43e40"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00689.html#a2cf7d13f9206082622d1c7c42dd43e40">FullScreenCleanup</a> ()</td></tr>
<tr class="separator:a2cf7d13f9206082622d1c7c42dd43e40"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aff6a0461c096c5f13235d6537112c084"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00689.html#aff6a0461c096c5f13235d6537112c084">xxxMakeWindowForegroundWithState</a> (<a class="el" href="a00365.html#a1a2ef1c363aa0787a8f8a7dde2a34aaf">PWND</a> pwnd, BYTE NewState)</td></tr>
<tr class="separator:aff6a0461c096c5f13235d6537112c084"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa405cfa528226b4bd1d09e0b731d36fa"><td class="memItemLeft" align="right" valign="top">NTSTATUS&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00689.html#aa405cfa528226b4bd1d09e0b731d36fa">NtUserFullscreenControl</a> (IN FULLSCREENCONTROL FullscreenCommand, PVOID FullscreenInput, <a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a> FullscreenInputLength, PVOID FullscreenOutput, PULONG FullscreenOutputLength)</td></tr>
<tr class="separator:aa405cfa528226b4bd1d09e0b731d36fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5fba44a86c81b63bd0bea2c0c3542fc8"><td class="memItemLeft" align="right" valign="top">VOID&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00689.html#a5fba44a86c81b63bd0bea2c0c3542fc8">ResetSharedDesktops</a> (<a class="el" href="a00365.html#ab392d2a1a1f08851fa36fb5af594de27">PDISPLAYINFO</a> pDIChanged, <a class="el" href="a00365.html#a07e239ec4a8e696c787df685bce70b61">PDESKTOP</a> pdeskChanged, LPRECT lprOldWork, <a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a> CDS_Flags)</td></tr>
<tr class="separator:a5fba44a86c81b63bd0bea2c0c3542fc8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac54f401520871421830eeed1d34dd321"><td class="memItemLeft" align="right" valign="top">VOID&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00689.html#ac54f401520871421830eeed1d34dd321">ResetDisplayDevice</a> (<a class="el" href="a00365.html#a07e239ec4a8e696c787df685bce70b61">PDESKTOP</a> pdesk, <a class="el" href="a00365.html#ab392d2a1a1f08851fa36fb5af594de27">PDISPLAYINFO</a> pDI, <a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a> CDS_Flags)</td></tr>
<tr class="separator:ac54f401520871421830eeed1d34dd321"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0a0005a4431f2cfd915cd4be346f80fc"><td class="memItemLeft" align="right" valign="top">LONG&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00689.html#a0a0005a4431f2cfd915cd4be346f80fc">NtUserChangeDisplaySettings</a> (IN PUNICODE_STRING pstrDeviceName, IN LPDEVMODEW pDevMode, IN HWND hwnd, IN <a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a> dwFlags, IN PVOID lParam)</td></tr>
<tr class="separator:a0a0005a4431f2cfd915cd4be346f80fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aca39fc0e877a9047585888e7790d20ed"><td class="memItemLeft" align="right" valign="top">LONG&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00689.html#aca39fc0e877a9047585888e7790d20ed">UserChangeDisplaySettings</a> (IN PUNICODE_STRING pstrDeviceName, IN LPDEVMODEW pDevMode, IN <a class="el" href="a00365.html#a1a2ef1c363aa0787a8f8a7dde2a34aaf">PWND</a> pwnd, IN <a class="el" href="a00365.html#a07e239ec4a8e696c787df685bce70b61">PDESKTOP</a> pdesk, IN <a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a> dwFlags, IN PVOID lParam, IN BOOL bKernelMode)</td></tr>
<tr class="separator:aca39fc0e877a9047585888e7790d20ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a855856a20ad946448abdafb9ee059ebd"><td class="memItemLeft" align="right" valign="top">HANDLE&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00689.html#a855856a20ad946448abdafb9ee059ebd">UserGetVgaHandle</a> (VOID)</td></tr>
<tr class="separator:a855856a20ad946448abdafb9ee059ebd"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
变量</h2></td></tr>
<tr class="memitem:a39514132d83d314ad628930b9ce9e9e1"><td class="memItemLeft" align="right" valign="top">LONG&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00689.html#a39514132d83d314ad628930b9ce9e9e1">TraceFullscreenSwitch</a> = 0</td></tr>
<tr class="separator:a39514132d83d314ad628930b9ce9e9e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adaa7e2f08c4f1fb0e8161e249d62f909"><td class="memItemLeft" align="right" valign="top">HANDLE&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00689.html#adaa7e2f08c4f1fb0e8161e249d62f909">idSwitcher</a> = <a class="el" href="a00689.html#a18707a2877a1444421decffc9e2efb3e">NOSWITCHER</a></td></tr>
<tr class="separator:adaa7e2f08c4f1fb0e8161e249d62f909"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab4e036cf2cf3a3162fe3ee05da10c457"><td class="memItemLeft" align="right" valign="top">BOOL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00689.html#ab4e036cf2cf3a3162fe3ee05da10c457">fRedoFullScreenSwitch</a> = FALSE</td></tr>
<tr class="separator:ab4e036cf2cf3a3162fe3ee05da10c457"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a387a17388d6fb6bc7ecd24bc5826427e"><td class="memItemLeft" align="right" valign="top">BOOL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00689.html#a387a17388d6fb6bc7ecd24bc5826427e">fGdiEnabled</a> = TRUE</td></tr>
<tr class="separator:a387a17388d6fb6bc7ecd24bc5826427e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a629f45921c086affcaef1298ff7f8fd4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00365.html#a1a2ef1c363aa0787a8f8a7dde2a34aaf">PWND</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00689.html#a629f45921c086affcaef1298ff7f8fd4">gspwndShouldBeForeground</a> = NULL</td></tr>
<tr class="separator:a629f45921c086affcaef1298ff7f8fd4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a646350d4ca26f09d0d0bcf6f70a12042"><td class="memItemLeft" align="right" valign="top">BYTE&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00689.html#a646350d4ca26f09d0d0bcf6f70a12042">gbFullScreen</a> = GDIFULLSCREEN</td></tr>
<tr class="separator:a646350d4ca26f09d0d0bcf6f70a12042"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a02a2c81b683ba609809c23d59b662273"><td class="memItemLeft" align="right" valign="top">POINT&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00689.html#a02a2c81b683ba609809c23d59b662273">gptCursorFullScreen</a></td></tr>
<tr class="separator:a02a2c81b683ba609809c23d59b662273"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5c0ed66b17009c8015022673ff5fcbdc"><td class="memItemLeft" align="right" valign="top">POINT&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00689.html#a5c0ed66b17009c8015022673ff5fcbdc">gptSSCursor</a></td></tr>
<tr class="separator:a5c0ed66b17009c8015022673ff5fcbdc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a762f2fbf9a0ad4d9a63f7c92adce1297"><td class="memItemLeft" align="right" valign="top">BOOL&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00689.html#a762f2fbf9a0ad4d9a63f7c92adce1297">bMultipleDisplaySystem</a></td></tr>
<tr class="separator:a762f2fbf9a0ad4d9a63f7c92adce1297"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">宏定义说明</h2>
<a id="a18707a2877a1444421decffc9e2efb3e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a18707a2877a1444421decffc9e2efb3e">&#9670;&nbsp;</a></span>NOSWITCHER</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define NOSWITCHER&#160;&#160;&#160;((HANDLE)-1)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="a00689_source.html">fullscr.c</a> 第 <a class="el" href="a00689_source.html#l00047">47</a> 行定义.</p>

</div>
</div>
<h2 class="groupheader">函数说明</h2>
<a id="a2cf7d13f9206082622d1c7c42dd43e40"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2cf7d13f9206082622d1c7c42dd43e40">&#9670;&nbsp;</a></span>FullScreenCleanup()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void FullScreenCleanup </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="a00689_source.html">fullscr.c</a> 第 <a class="el" href="a00689_source.html#l00075">75</a> 行定义.</p>
<div class="fragment"><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;{</div>
<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;    <span class="keywordflow">if</span> (PsGetCurrentThread()-&gt;Cid.UniqueThread == <a class="code" href="a00689.html#adaa7e2f08c4f1fb0e8161e249d62f909">idSwitcher</a>) {</div>
<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160; </div>
<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;        <span class="comment">/*</span></div>
<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;<span class="comment">         * correct the full screen state</span></div>
<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;<span class="comment">         */</span></div>
<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160; </div>
<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="a00689.html#a387a17388d6fb6bc7ecd24bc5826427e">fGdiEnabled</a>) {</div>
<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160; </div>
<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;            TRACE_SWITCH((<span class="stringliteral">&quot;Switching: FullScreenCleanup: Gdi Enabled\n&quot;</span>));</div>
<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160; </div>
<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;            <span class="comment">/*</span></div>
<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;<span class="comment">             * gdi is enabled, we are switching away from gdi the only thing we</span></div>
<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;<span class="comment">             * could have done so far is locking the screen so unlock it.</span></div>
<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;<span class="comment">             */</span></div>
<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;            <a class="code" href="a03257.html#a2bbf28771d074083b01444a97409814e">gfLockFullScreen</a> = FALSE;</div>
<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;            <a class="code" href="a00860.html#a386f0678a4f1a1261f1cfd672696933a">xxxLockWindowUpdate2</a>(NULL, TRUE);</div>
<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160; </div>
<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;        } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160; </div>
<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;            <span class="comment">/*</span></div>
<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;<span class="comment">             * GDI is not enabled .  This means we were switching from a full</span></div>
<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;<span class="comment">             * screen to another fullscreen or back to GDI.  Or we could have</span></div>
<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;<span class="comment">             * disabled gdi and sent a message to the new full screen which</span></div>
<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;<span class="comment">             * never got completed.</span></div>
<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;<span class="comment">             *</span></div>
<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;<span class="comment">             * In any case this probably means the fullscreen guy is gone so</span></div>
<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;<span class="comment">             * we will switch back to gdi.</span></div>
<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;<span class="comment">             *</span></div>
<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;<span class="comment">             * delete any left over saved screen state stuff</span></div>
<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;<span class="comment">             * set the fullscreen to nothing and then send a message that will</span></div>
<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;<span class="comment">             * cause us to switch back to the gdi desktop</span></div>
<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;<span class="comment">             */</span></div>
<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;            <a class="code" href="a01881.html">TL</a> tlpwndT;</div>
<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160; </div>
<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;            TRACE_SWITCH((<span class="stringliteral">&quot;Switching: FullScreenCleanup: Gdi Disabled\n&quot;</span>));</div>
<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160; </div>
<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;            Unlock(&amp;<a class="code" href="a03257.html#a674cbbaf9c1c4e2ca63923ba1fadfae0">gspwndFullScreen</a>);</div>
<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;            <a class="code" href="a00689.html#a646350d4ca26f09d0d0bcf6f70a12042">gbFullScreen</a> = FULLSCREEN;</div>
<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160; </div>
<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;            <a class="code" href="a00899.html#abfae1dfb48db23dcea4494f7990ad6a6">ThreadLock</a>(<a class="code" href="a03257.html#a326757fcfe334f2ffd59d64d4645d37a">grpdeskRitInput</a>-&gt;<a class="code" href="a02801.html#a76d4881aa4c15330103e83a80e6b5dc7">pDeskInfo</a>-&gt;<a class="code" href="a02609.html#a68937d60a6f49b7a8431db62b38ea721">spwnd</a>, &amp;tlpwndT);</div>
<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;            <a class="code" href="a00842.html#a0035e456f12ef530c2b674cd1f6f8b36">xxxSendNotifyMessage</a>(</div>
<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;                    <a class="code" href="a03257.html#a326757fcfe334f2ffd59d64d4645d37a">grpdeskRitInput</a>-&gt;<a class="code" href="a02801.html#a76d4881aa4c15330103e83a80e6b5dc7">pDeskInfo</a>-&gt;<a class="code" href="a02609.html#a68937d60a6f49b7a8431db62b38ea721">spwnd</a>, WM_FULLSCREEN,</div>
<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;                    GDIFULLSCREEN, (LONG)HW(<a class="code" href="a03257.html#a326757fcfe334f2ffd59d64d4645d37a">grpdeskRitInput</a>-&gt;<a class="code" href="a02801.html#a76d4881aa4c15330103e83a80e6b5dc7">pDeskInfo</a>-&gt;<a class="code" href="a02609.html#a68937d60a6f49b7a8431db62b38ea721">spwnd</a>));</div>
<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;            ThreadUnlock(&amp;tlpwndT);</div>
<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;        }</div>
<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160; </div>
<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;        <a class="code" href="a00689.html#adaa7e2f08c4f1fb0e8161e249d62f909">idSwitcher</a> = <a class="code" href="a00689.html#a18707a2877a1444421decffc9e2efb3e">NOSWITCHER</a>;</div>
<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;        <a class="code" href="a00689.html#ab4e036cf2cf3a3162fe3ee05da10c457">fRedoFullScreenSwitch</a> = FALSE;</div>
<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;    }</div>
<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;}</div>
</div><!-- fragment -->
<p class="reference">引用了 <a class="el" href="a00689_source.html#l00051">fGdiEnabled</a>, <a class="el" href="a00689_source.html#l00050">fRedoFullScreenSwitch</a>, <a class="el" href="a00689_source.html#l00053">gbFullScreen</a>, <a class="el" href="a03257_source.html#l00077">gfLockFullScreen</a>, <a class="el" href="a03257_source.html#l00187">grpdeskRitInput</a>, <a class="el" href="a03257_source.html#l00076">gspwndFullScreen</a>, <a class="el" href="a00689_source.html#l00049">idSwitcher</a>, <a class="el" href="a00689_source.html#l00047">NOSWITCHER</a>, <a class="el" href="a00899_source.html#l01706">tagDESKTOP::pDeskInfo</a>, <a class="el" href="a00365_source.html#l01603">tagDESKTOPINFO::spwnd</a>, <a class="el" href="a00899.html#abfae1dfb48db23dcea4494f7990ad6a6">ThreadLock()</a>, <a class="el" href="a00860_source.html#l00758">xxxLockWindowUpdate2()</a> , 以及 <a class="el" href="a00842_source.html#l00968">xxxSendNotifyMessage()</a>.</p>

<p class="reference">被这些函数引用 <a class="el" href="a03665_source.html#l02002">UserThreadCallout()</a>.</p>

</div>
</div>
<a id="a0a0005a4431f2cfd915cd4be346f80fc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0a0005a4431f2cfd915cd4be346f80fc">&#9670;&nbsp;</a></span>NtUserChangeDisplaySettings()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">LONG NtUserChangeDisplaySettings </td>
          <td>(</td>
          <td class="paramtype">IN PUNICODE_STRING&#160;</td>
          <td class="paramname"><em>pstrDeviceName</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">IN LPDEVMODEW&#160;</td>
          <td class="paramname"><em>pDevMode</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">IN HWND&#160;</td>
          <td class="paramname"><em>hwnd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">IN <a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a>&#160;</td>
          <td class="paramname"><em>dwFlags</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">IN PVOID&#160;</td>
          <td class="paramname"><em>lParam</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="a00689_source.html">fullscr.c</a> 第 <a class="el" href="a00689_source.html#l01060">1060</a> 行定义.</p>
<div class="fragment"><div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160;{</div>
<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160;    <a class="code" href="a02581.html">PWND</a> pwnd = NULL;</div>
<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160;    LONG retval;</div>
<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160; </div>
<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160;    <a class="code" href="a00899.html#ae451a2dc8791c420d7c956a63adc33ba">EnterCrit</a>();</div>
<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160; </div>
<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160;    <span class="keywordflow">if</span> (hwnd) {</div>
<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>&#160; </div>
<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160;        pwnd = <a class="code" href="a00293.html#a41d387d1b2d42169cbaa2092c8a02abf">ValidateHwnd</a>(hwnd);</div>
<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160; </div>
<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160;        <span class="keywordflow">if</span> (!pwnd) {</div>
<div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>&#160;            <a class="code" href="a00899.html#ac2181d07596893ed44d18aa267ce4d23">LeaveCrit</a>();</div>
<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160;            <span class="keywordflow">return</span> DISP_CHANGE_BADPARAM;</div>
<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160;        }</div>
<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160;    }</div>
<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160; </div>
<div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160;    retval = <a class="code" href="a00689.html#aca39fc0e877a9047585888e7790d20ed">UserChangeDisplaySettings</a>(pstrDeviceName,</div>
<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160;                                       pDevMode,</div>
<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160;                                       pwnd,</div>
<div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160;                                       NULL,</div>
<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160;                                       dwFlags,</div>
<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160;                                       lParam,</div>
<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160;                                       FALSE);</div>
<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160; </div>
<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>&#160;    <a class="code" href="a00899.html#ac2181d07596893ed44d18aa267ce4d23">LeaveCrit</a>();</div>
<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160;    <span class="keywordflow">return</span> retval;</div>
<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160; </div>
<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160;}</div>
</div><!-- fragment -->
<p class="reference">引用了 <a class="el" href="a00899.html#ae451a2dc8791c420d7c956a63adc33ba">EnterCrit()</a>, <a class="el" href="a00899.html#ac2181d07596893ed44d18aa267ce4d23">LeaveCrit()</a>, <a class="el" href="a00689_source.html#l01097">UserChangeDisplaySettings()</a> , 以及 <a class="el" href="a00293_source.html#l00090">ValidateHwnd</a>.</p>

<p class="reference">被这些函数引用 <a class="el" href="a00356_source.html#l01403">ChangeDisplaySettingsEx()</a>.</p>

</div>
</div>
<a id="aa405cfa528226b4bd1d09e0b731d36fa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa405cfa528226b4bd1d09e0b731d36fa">&#9670;&nbsp;</a></span>NtUserFullscreenControl()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">NTSTATUS NtUserFullscreenControl </td>
          <td>(</td>
          <td class="paramtype">IN FULLSCREENCONTROL&#160;</td>
          <td class="paramname"><em>FullscreenCommand</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">PVOID&#160;</td>
          <td class="paramname"><em>FullscreenInput</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a>&#160;</td>
          <td class="paramname"><em>FullscreenInputLength</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">PVOID&#160;</td>
          <td class="paramname"><em>FullscreenOutput</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">PULONG&#160;</td>
          <td class="paramname"><em>FullscreenOutputLength</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="a00689_source.html">fullscr.c</a> 第 <a class="el" href="a00689_source.html#l00375">375</a> 行定义.</p>
<div class="fragment"><div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160;{</div>
<div class="line"><a name="l00382"></a><span class="lineno">  382</span>&#160; </div>
<div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;    NTSTATUS Status = STATUS_SUCCESS;</div>
<div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160; </div>
<div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160;    ULONG BytesReturned;</div>
<div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160;    PVOID pCapBuffer = NULL;</div>
<div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;    ULONG cCapBuffer = 0;</div>
<div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160;    ULONG ioctl;</div>
<div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160; </div>
<div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;    <span class="comment">//</span></div>
<div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160;    <span class="comment">// First validate the ioctl</span></div>
<div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160;    <span class="comment">//</span></div>
<div class="line"><a name="l00393"></a><span class="lineno">  393</span>&#160; </div>
<div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160;    <span class="keywordflow">switch</span>(FullscreenCommand) {</div>
<div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160; </div>
<div class="line"><a name="l00396"></a><span class="lineno">  396</span>&#160;    <span class="keywordflow">case</span> FullscreenControlEnable:</div>
<div class="line"><a name="l00397"></a><span class="lineno">  397</span>&#160;        ioctl = IOCTL_VIDEO_ENABLE_VDM;</div>
<div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160;        TRACE_SWITCH((<span class="stringliteral">&quot;Switching: FullscreenControlEnable\n&quot;</span>));</div>
<div class="line"><a name="l00399"></a><span class="lineno">  399</span>&#160;        <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160; </div>
<div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160;    <span class="keywordflow">case</span> FullscreenControlDisable:</div>
<div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;        ioctl = IOCTL_VIDEO_DISABLE_VDM;</div>
<div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160;        TRACE_SWITCH((<span class="stringliteral">&quot;Switching: FullscreenControlDisable\n&quot;</span>));</div>
<div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160;        <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160; </div>
<div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160;    <span class="keywordflow">case</span> FullscreenControlSetCursorPosition:</div>
<div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;        ioctl = IOCTL_VIDEO_SET_CURSOR_POSITION;</div>
<div class="line"><a name="l00408"></a><span class="lineno">  408</span>&#160;        TRACE_SWITCH((<span class="stringliteral">&quot;Switching: FullscreenControlSetCursorPosition\n&quot;</span>));</div>
<div class="line"><a name="l00409"></a><span class="lineno">  409</span>&#160;        <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00410"></a><span class="lineno">  410</span>&#160; </div>
<div class="line"><a name="l00411"></a><span class="lineno">  411</span>&#160;    <span class="keywordflow">case</span> FullscreenControlSetCursorAttributes:</div>
<div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160;        ioctl = IOCTL_VIDEO_SET_CURSOR_ATTR;</div>
<div class="line"><a name="l00413"></a><span class="lineno">  413</span>&#160;        TRACE_SWITCH((<span class="stringliteral">&quot;Switching: FullscreenControlSetCursorAttributes\n&quot;</span>));</div>
<div class="line"><a name="l00414"></a><span class="lineno">  414</span>&#160;        <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160; </div>
<div class="line"><a name="l00416"></a><span class="lineno">  416</span>&#160;    <span class="keywordflow">case</span> FullscreenControlRegisterVdm:</div>
<div class="line"><a name="l00417"></a><span class="lineno">  417</span>&#160;        ioctl = IOCTL_VIDEO_REGISTER_VDM;</div>
<div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160;        TRACE_SWITCH((<span class="stringliteral">&quot;Switching: FullscreenControlRegisterVdm\n&quot;</span>));</div>
<div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160;        <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160; </div>
<div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160;    <span class="keywordflow">case</span> FullscreenControlSetPalette:</div>
<div class="line"><a name="l00422"></a><span class="lineno">  422</span>&#160;        ioctl = IOCTL_VIDEO_SET_PALETTE_REGISTERS;</div>
<div class="line"><a name="l00423"></a><span class="lineno">  423</span>&#160;        TRACE_SWITCH((<span class="stringliteral">&quot;Switching: FullscreenControlSetPalette\n&quot;</span>));</div>
<div class="line"><a name="l00424"></a><span class="lineno">  424</span>&#160;        <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00425"></a><span class="lineno">  425</span>&#160; </div>
<div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160;    <span class="keywordflow">case</span> FullscreenControlSetColors:</div>
<div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160;        ioctl = IOCTL_VIDEO_SET_COLOR_REGISTERS;</div>
<div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160;        TRACE_SWITCH((<span class="stringliteral">&quot;Switching: FullscreenControlSetColors\n&quot;</span>));</div>
<div class="line"><a name="l00429"></a><span class="lineno">  429</span>&#160;        <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00430"></a><span class="lineno">  430</span>&#160; </div>
<div class="line"><a name="l00431"></a><span class="lineno">  431</span>&#160;    <span class="keywordflow">case</span> FullscreenControlLoadFont:</div>
<div class="line"><a name="l00432"></a><span class="lineno">  432</span>&#160;        ioctl = IOCTL_VIDEO_LOAD_AND_SET_FONT;</div>
<div class="line"><a name="l00433"></a><span class="lineno">  433</span>&#160;        TRACE_SWITCH((<span class="stringliteral">&quot;Switching: FullscreenControlLoadFont\n&quot;</span>));</div>
<div class="line"><a name="l00434"></a><span class="lineno">  434</span>&#160;        <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00435"></a><span class="lineno">  435</span>&#160; </div>
<div class="line"><a name="l00436"></a><span class="lineno">  436</span>&#160;    <span class="keywordflow">case</span> FullscreenControlRestoreHardwareState:</div>
<div class="line"><a name="l00437"></a><span class="lineno">  437</span>&#160;        ioctl = IOCTL_VIDEO_RESTORE_HARDWARE_STATE;</div>
<div class="line"><a name="l00438"></a><span class="lineno">  438</span>&#160;        TRACE_SWITCH((<span class="stringliteral">&quot;Switching: FullscreenControlRestoreHardwareState\n&quot;</span>));</div>
<div class="line"><a name="l00439"></a><span class="lineno">  439</span>&#160;        <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00440"></a><span class="lineno">  440</span>&#160; </div>
<div class="line"><a name="l00441"></a><span class="lineno">  441</span>&#160;    <span class="keywordflow">case</span> FullscreenControlSaveHardwareState:</div>
<div class="line"><a name="l00442"></a><span class="lineno">  442</span>&#160;        ioctl = IOCTL_VIDEO_SAVE_HARDWARE_STATE;</div>
<div class="line"><a name="l00443"></a><span class="lineno">  443</span>&#160;        TRACE_SWITCH((<span class="stringliteral">&quot;Switching: FullscreenControlSaveHardwareState\n&quot;</span>));</div>
<div class="line"><a name="l00444"></a><span class="lineno">  444</span>&#160;        <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00445"></a><span class="lineno">  445</span>&#160; </div>
<div class="line"><a name="l00446"></a><span class="lineno">  446</span>&#160;    <span class="keywordflow">case</span> FullscreenControlCopyFrameBuffer:</div>
<div class="line"><a name="l00447"></a><span class="lineno">  447</span>&#160;    <span class="keywordflow">case</span> FullscreenControlReadFromFrameBuffer:</div>
<div class="line"><a name="l00448"></a><span class="lineno">  448</span>&#160;    <span class="keywordflow">case</span> FullscreenControlWriteToFrameBuffer:</div>
<div class="line"><a name="l00449"></a><span class="lineno">  449</span>&#160;    <span class="keywordflow">case</span> FullscreenControlReverseMousePointer:</div>
<div class="line"><a name="l00450"></a><span class="lineno">  450</span>&#160;        <span class="comment">// TRACE_SWITCH((&quot;Switching: Fullscreen output command\n&quot;));</span></div>
<div class="line"><a name="l00451"></a><span class="lineno">  451</span>&#160;        ioctl = 0;</div>
<div class="line"><a name="l00452"></a><span class="lineno">  452</span>&#160;        <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00453"></a><span class="lineno">  453</span>&#160; </div>
<div class="line"><a name="l00454"></a><span class="lineno">  454</span>&#160;    <span class="keywordflow">case</span> FullscreenControlSetMode:</div>
<div class="line"><a name="l00455"></a><span class="lineno">  455</span>&#160;        TRACE_SWITCH((<span class="stringliteral">&quot;Switching: Fullscreen setmode command\n&quot;</span>));</div>
<div class="line"><a name="l00456"></a><span class="lineno">  456</span>&#160;        ioctl = 0;</div>
<div class="line"><a name="l00457"></a><span class="lineno">  457</span>&#160;        <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00458"></a><span class="lineno">  458</span>&#160; </div>
<div class="line"><a name="l00459"></a><span class="lineno">  459</span>&#160;    <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l00460"></a><span class="lineno">  460</span>&#160;        <a class="code" href="a00371.html#a01c4659626880ba56745765a3580a36b">RIPMSG0</a>(<a class="code" href="a00371.html#afa5f32de88404289ec03cd2c0e61e94f">RIP_ERROR</a>, <span class="stringliteral">&quot;NtUserFullscreenControl: invalid IOCTL\n&quot;</span>);</div>
<div class="line"><a name="l00461"></a><span class="lineno">  461</span>&#160;        <span class="keywordflow">return</span> STATUS_NOT_IMPLEMENTED;</div>
<div class="line"><a name="l00462"></a><span class="lineno">  462</span>&#160; </div>
<div class="line"><a name="l00463"></a><span class="lineno">  463</span>&#160;    }</div>
<div class="line"><a name="l00464"></a><span class="lineno">  464</span>&#160; </div>
<div class="line"><a name="l00465"></a><span class="lineno">  465</span>&#160;    <a class="code" href="a00899.html#ae451a2dc8791c420d7c956a63adc33ba">EnterCrit</a>();</div>
<div class="line"><a name="l00466"></a><span class="lineno">  466</span>&#160; </div>
<div class="line"><a name="l00467"></a><span class="lineno">  467</span>&#160;    <span class="comment">//</span></div>
<div class="line"><a name="l00468"></a><span class="lineno">  468</span>&#160;    <span class="comment">// Check if the system is in a fullscreen state, where the IOCTL can</span></div>
<div class="line"><a name="l00469"></a><span class="lineno">  469</span>&#160;    <span class="comment">// be safely sent to the device, or the device memory can be</span></div>
<div class="line"><a name="l00470"></a><span class="lineno">  470</span>&#160;    <span class="comment">// manipulated.</span></div>
<div class="line"><a name="l00471"></a><span class="lineno">  471</span>&#160;    <span class="comment">//</span></div>
<div class="line"><a name="l00472"></a><span class="lineno">  472</span>&#160; </div>
<div class="line"><a name="l00473"></a><span class="lineno">  473</span>&#160;    <span class="keywordflow">if</span> ((<a class="code" href="a00689.html#a387a17388d6fb6bc7ecd24bc5826427e">fGdiEnabled</a> == TRUE) &amp;&amp;</div>
<div class="line"><a name="l00474"></a><span class="lineno">  474</span>&#160;        (FullscreenCommand != FullscreenControlRegisterVdm))</div>
<div class="line"><a name="l00475"></a><span class="lineno">  475</span>&#160;    {</div>
<div class="line"><a name="l00476"></a><span class="lineno">  476</span>&#160;        <a class="code" href="a00371.html#a01c4659626880ba56745765a3580a36b">RIPMSG0</a>(<a class="code" href="a00371.html#afa5f32de88404289ec03cd2c0e61e94f">RIP_ERROR</a>, <span class="stringliteral">&quot;Fullscreen control - Not in fullscreen !\n&quot;</span>);</div>
<div class="line"><a name="l00477"></a><span class="lineno">  477</span>&#160;        <a class="code" href="a00899.html#ac2181d07596893ed44d18aa267ce4d23">LeaveCrit</a>();</div>
<div class="line"><a name="l00478"></a><span class="lineno">  478</span>&#160;        <span class="keywordflow">return</span> STATUS_UNSUCCESSFUL;</div>
<div class="line"><a name="l00479"></a><span class="lineno">  479</span>&#160;    }</div>
<div class="line"><a name="l00480"></a><span class="lineno">  480</span>&#160; </div>
<div class="line"><a name="l00481"></a><span class="lineno">  481</span>&#160; </div>
<div class="line"><a name="l00482"></a><span class="lineno">  482</span>&#160;    <span class="comment">//</span></div>
<div class="line"><a name="l00483"></a><span class="lineno">  483</span>&#160;    <span class="comment">// If this is a frame buffer function, that we can just deal with the</span></div>
<div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160;    <span class="comment">// device directly, and not send any IOCTL to the device.</span></div>
<div class="line"><a name="l00485"></a><span class="lineno">  485</span>&#160;    <span class="comment">//</span></div>
<div class="line"><a name="l00486"></a><span class="lineno">  486</span>&#160; </div>
<div class="line"><a name="l00487"></a><span class="lineno">  487</span>&#160;    <span class="keywordflow">if</span> (ioctl == 0)</div>
<div class="line"><a name="l00488"></a><span class="lineno">  488</span>&#160;    {</div>
<div class="line"><a name="l00489"></a><span class="lineno">  489</span>&#160;        <span class="comment">//</span></div>
<div class="line"><a name="l00490"></a><span class="lineno">  490</span>&#160;        <span class="comment">// First get the frame buffer pointer for the device.</span></div>
<div class="line"><a name="l00491"></a><span class="lineno">  491</span>&#160;        <span class="comment">//</span></div>
<div class="line"><a name="l00492"></a><span class="lineno">  492</span>&#160; </div>
<div class="line"><a name="l00493"></a><span class="lineno">  493</span>&#160;        PUCHAR pFrameBuf = <a class="code" href="a03257.html#a786cd01671f99939368eaa4f602f2410">gpFullscreenFrameBufPtr</a>;</div>
<div class="line"><a name="l00494"></a><span class="lineno">  494</span>&#160;        PCHAR_INFO pCharInfo;</div>
<div class="line"><a name="l00495"></a><span class="lineno">  495</span>&#160; </div>
<div class="line"><a name="l00496"></a><span class="lineno">  496</span>&#160;        <a class="code" href="a00953.html#aebb9e13210d88d43e32e735ada43a425">CHAR</a> Attribute;</div>
<div class="line"><a name="l00497"></a><span class="lineno">  497</span>&#160; </div>
<div class="line"><a name="l00498"></a><span class="lineno">  498</span>&#160;        <span class="comment">//</span></div>
<div class="line"><a name="l00499"></a><span class="lineno">  499</span>&#160;        <span class="comment">// Assume success for all these operations.</span></div>
<div class="line"><a name="l00500"></a><span class="lineno">  500</span>&#160;        <span class="comment">//</span></div>
<div class="line"><a name="l00501"></a><span class="lineno">  501</span>&#160; </div>
<div class="line"><a name="l00502"></a><span class="lineno">  502</span>&#160;        Status = STATUS_SUCCESS;</div>
<div class="line"><a name="l00503"></a><span class="lineno">  503</span>&#160; </div>
<div class="line"><a name="l00504"></a><span class="lineno">  504</span>&#160;        <span class="keywordflow">switch</span>(FullscreenCommand) {</div>
<div class="line"><a name="l00505"></a><span class="lineno">  505</span>&#160; </div>
<div class="line"><a name="l00506"></a><span class="lineno">  506</span>&#160;        <span class="keywordflow">case</span> FullscreenControlSetMode:</div>
<div class="line"><a name="l00507"></a><span class="lineno">  507</span>&#160;<span class="preprocessor">#if 1</span></div>
<div class="line"><a name="l00508"></a><span class="lineno">  508</span>&#160;        <span class="comment">//</span></div>
<div class="line"><a name="l00509"></a><span class="lineno">  509</span>&#160;        <span class="comment">// BUGBUG temporary workaround to get Alt-Tab working.</span></div>
<div class="line"><a name="l00510"></a><span class="lineno">  510</span>&#160;        <span class="comment">//</span></div>
<div class="line"><a name="l00511"></a><span class="lineno">  511</span>&#160; </div>
<div class="line"><a name="l00512"></a><span class="lineno">  512</span>&#160;            {</div>
<div class="line"><a name="l00513"></a><span class="lineno">  513</span>&#160;                LPDEVMODEW pDevmode = <a class="code" href="a03257.html#aea20d6528ad57e108c962a4fcb2e91d9">gphysDevInfo</a>[0].<a class="code" href="a02601.html#a1fe37d9234f46b11eab06dbfbafab7e9">devmodeInfo</a>;</div>
<div class="line"><a name="l00514"></a><span class="lineno">  514</span>&#160;                VIDEO_MODE VideoMode;</div>
<div class="line"><a name="l00515"></a><span class="lineno">  515</span>&#160;                BOOLEAN modeFound = FALSE;</div>
<div class="line"><a name="l00516"></a><span class="lineno">  516</span>&#160;                ULONG BytesReturned;</div>
<div class="line"><a name="l00517"></a><span class="lineno">  517</span>&#160;                ULONG i;</div>
<div class="line"><a name="l00518"></a><span class="lineno">  518</span>&#160; </div>
<div class="line"><a name="l00519"></a><span class="lineno">  519</span>&#160;                <span class="comment">//</span></div>
<div class="line"><a name="l00520"></a><span class="lineno">  520</span>&#160;                <span class="comment">// Fullscreen VGA modes require us to call the miniport driver</span></div>
<div class="line"><a name="l00521"></a><span class="lineno">  521</span>&#160;                <span class="comment">// directly.</span></div>
<div class="line"><a name="l00522"></a><span class="lineno">  522</span>&#160;                <span class="comment">//</span></div>
<div class="line"><a name="l00523"></a><span class="lineno">  523</span>&#160;                <span class="comment">// Lets check the VGA Device handle, which is in the first entry</span></div>
<div class="line"><a name="l00524"></a><span class="lineno">  524</span>&#160;                <span class="comment">//</span></div>
<div class="line"><a name="l00525"></a><span class="lineno">  525</span>&#160; </div>
<div class="line"><a name="l00526"></a><span class="lineno">  526</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="a03257.html#aea20d6528ad57e108c962a4fcb2e91d9">gphysDevInfo</a>[0].pDeviceHandle == NULL)</div>
<div class="line"><a name="l00527"></a><span class="lineno">  527</span>&#160;                {</div>
<div class="line"><a name="l00528"></a><span class="lineno">  528</span>&#160;                    Status = STATUS_UNSUCCESSFUL;</div>
<div class="line"><a name="l00529"></a><span class="lineno">  529</span>&#160;                }</div>
<div class="line"><a name="l00530"></a><span class="lineno">  530</span>&#160;                <span class="keywordflow">else</span></div>
<div class="line"><a name="l00531"></a><span class="lineno">  531</span>&#160;                {</div>
<div class="line"><a name="l00532"></a><span class="lineno">  532</span>&#160;                    <span class="comment">//</span></div>
<div class="line"><a name="l00533"></a><span class="lineno">  533</span>&#160;                    <span class="comment">// NOTE We know that if there is a vgacompatible device, then</span></div>
<div class="line"><a name="l00534"></a><span class="lineno">  534</span>&#160;                    <span class="comment">// there are some text modes for it.</span></div>
<div class="line"><a name="l00535"></a><span class="lineno">  535</span>&#160;                    <span class="comment">//</span></div>
<div class="line"><a name="l00536"></a><span class="lineno">  536</span>&#160;                    <span class="comment">// NOTE !!!</span></div>
<div class="line"><a name="l00537"></a><span class="lineno">  537</span>&#160;                    <span class="comment">// As a hack, lets use the mode number we stored in the DEVMODE</span></div>
<div class="line"><a name="l00538"></a><span class="lineno">  538</span>&#160;                    <span class="comment">// a field we don&#39;t use</span></div>
<div class="line"><a name="l00539"></a><span class="lineno">  539</span>&#160;                    <span class="comment">//</span></div>
<div class="line"><a name="l00540"></a><span class="lineno">  540</span>&#160; </div>
<div class="line"><a name="l00541"></a><span class="lineno">  541</span>&#160;                    <span class="keywordflow">for</span> (i = 0;</div>
<div class="line"><a name="l00542"></a><span class="lineno">  542</span>&#160;                         i &lt; <a class="code" href="a03257.html#aea20d6528ad57e108c962a4fcb2e91d9">gphysDevInfo</a>[0].<a class="code" href="a02601.html#a11272e040ff3989da159f50e88b7b8c6">cbdevmodeInfo</a>;</div>
<div class="line"><a name="l00543"></a><span class="lineno">  543</span>&#160;                         i += <span class="keyword">sizeof</span>(DEVMODEW), pDevmode += 1) {</div>
<div class="line"><a name="l00544"></a><span class="lineno">  544</span>&#160; </div>
<div class="line"><a name="l00545"></a><span class="lineno">  545</span>&#160;                        <span class="comment">// !!! BUGBUG lpDevmode needs to be captured</span></div>
<div class="line"><a name="l00546"></a><span class="lineno">  546</span>&#160; </div>
<div class="line"><a name="l00547"></a><span class="lineno">  547</span>&#160;                        <span class="keywordflow">if</span> ((pDevmode-&gt;dmPelsWidth  == ((LPDEVMODEW) FullscreenInput)-&gt;dmPelsWidth) &amp;&amp;</div>
<div class="line"><a name="l00548"></a><span class="lineno">  548</span>&#160;                            (pDevmode-&gt;dmPelsHeight == ((LPDEVMODEW) FullscreenInput)-&gt;dmPelsHeight))</div>
<div class="line"><a name="l00549"></a><span class="lineno">  549</span>&#160;                        {</div>
<div class="line"><a name="l00550"></a><span class="lineno">  550</span>&#160;                            VideoMode.RequestedMode = (ULONG) ((LPDEVMODEW) FullscreenInput)-&gt;dmOrientation;</div>
<div class="line"><a name="l00551"></a><span class="lineno">  551</span>&#160;                            modeFound = TRUE;</div>
<div class="line"><a name="l00552"></a><span class="lineno">  552</span>&#160;                            <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00553"></a><span class="lineno">  553</span>&#160;                        }</div>
<div class="line"><a name="l00554"></a><span class="lineno">  554</span>&#160;                    }</div>
<div class="line"><a name="l00555"></a><span class="lineno">  555</span>&#160; </div>
<div class="line"><a name="l00556"></a><span class="lineno">  556</span>&#160;                    <span class="keywordflow">if</span> (modeFound == FALSE)</div>
<div class="line"><a name="l00557"></a><span class="lineno">  557</span>&#160;                    {</div>
<div class="line"><a name="l00558"></a><span class="lineno">  558</span>&#160;                        <a class="code" href="a00371.html#a01c4659626880ba56745765a3580a36b">RIPMSG0</a>(<a class="code" href="a00371.html#afa5f32de88404289ec03cd2c0e61e94f">RIP_ERROR</a>, <span class="stringliteral">&quot;ChangeDisplaySettings: Console [assed in bad DEVMODE\n&quot;</span>);</div>
<div class="line"><a name="l00559"></a><span class="lineno">  559</span>&#160; </div>
<div class="line"><a name="l00560"></a><span class="lineno">  560</span>&#160;                        Status = STATUS_UNSUCCESSFUL;</div>
<div class="line"><a name="l00561"></a><span class="lineno">  561</span>&#160;                    }</div>
<div class="line"><a name="l00562"></a><span class="lineno">  562</span>&#160;                    <span class="keywordflow">else</span></div>
<div class="line"><a name="l00563"></a><span class="lineno">  563</span>&#160;                    {</div>
<div class="line"><a name="l00564"></a><span class="lineno">  564</span>&#160;                        <span class="comment">//</span></div>
<div class="line"><a name="l00565"></a><span class="lineno">  565</span>&#160;                        <span class="comment">// We have the mode number.</span></div>
<div class="line"><a name="l00566"></a><span class="lineno">  566</span>&#160;                        <span class="comment">// Call the driver to set the mode</span></div>
<div class="line"><a name="l00567"></a><span class="lineno">  567</span>&#160;                        <span class="comment">//</span></div>
<div class="line"><a name="l00568"></a><span class="lineno">  568</span>&#160; </div>
<div class="line"><a name="l00569"></a><span class="lineno">  569</span>&#160;                        Status = GreDeviceIoControl(<a class="code" href="a03257.html#aea20d6528ad57e108c962a4fcb2e91d9">gphysDevInfo</a>[0].pDeviceHandle,</div>
<div class="line"><a name="l00570"></a><span class="lineno">  570</span>&#160;                                                    IOCTL_VIDEO_SET_CURRENT_MODE,</div>
<div class="line"><a name="l00571"></a><span class="lineno">  571</span>&#160;                                                    &amp;VideoMode,</div>
<div class="line"><a name="l00572"></a><span class="lineno">  572</span>&#160;                                                    <span class="keyword">sizeof</span>(VideoMode),</div>
<div class="line"><a name="l00573"></a><span class="lineno">  573</span>&#160;                                                    NULL,</div>
<div class="line"><a name="l00574"></a><span class="lineno">  574</span>&#160;                                                    0,</div>
<div class="line"><a name="l00575"></a><span class="lineno">  575</span>&#160;                                                    &amp;BytesReturned);</div>
<div class="line"><a name="l00576"></a><span class="lineno">  576</span>&#160; </div>
<div class="line"><a name="l00577"></a><span class="lineno">  577</span>&#160;                        <span class="keywordflow">if</span> (NT_SUCCESS(Status))</div>
<div class="line"><a name="l00578"></a><span class="lineno">  578</span>&#160;                        {</div>
<div class="line"><a name="l00579"></a><span class="lineno">  579</span>&#160;                            <span class="comment">//</span></div>
<div class="line"><a name="l00580"></a><span class="lineno">  580</span>&#160;                            <span class="comment">// We also map the memory so we can use it to</span></div>
<div class="line"><a name="l00581"></a><span class="lineno">  581</span>&#160;                            <span class="comment">// process string commands from the console</span></div>
<div class="line"><a name="l00582"></a><span class="lineno">  582</span>&#160;                            <span class="comment">//</span></div>
<div class="line"><a name="l00583"></a><span class="lineno">  583</span>&#160; </div>
<div class="line"><a name="l00584"></a><span class="lineno">  584</span>&#160;                            VIDEO_MEMORY FrameBufferMap;</div>
<div class="line"><a name="l00585"></a><span class="lineno">  585</span>&#160;                            VIDEO_MEMORY_INFORMATION FrameBufferInfo;</div>
<div class="line"><a name="l00586"></a><span class="lineno">  586</span>&#160; </div>
<div class="line"><a name="l00587"></a><span class="lineno">  587</span>&#160;                            FrameBufferMap.RequestedVirtualAddress = NULL;</div>
<div class="line"><a name="l00588"></a><span class="lineno">  588</span>&#160; </div>
<div class="line"><a name="l00589"></a><span class="lineno">  589</span>&#160;                            Status = GreDeviceIoControl(<a class="code" href="a03257.html#aea20d6528ad57e108c962a4fcb2e91d9">gphysDevInfo</a>[0].pDeviceHandle,</div>
<div class="line"><a name="l00590"></a><span class="lineno">  590</span>&#160;                                                        IOCTL_VIDEO_MAP_VIDEO_MEMORY,</div>
<div class="line"><a name="l00591"></a><span class="lineno">  591</span>&#160;                                                        &amp;FrameBufferMap,</div>
<div class="line"><a name="l00592"></a><span class="lineno">  592</span>&#160;                                                        <span class="keyword">sizeof</span>(FrameBufferMap),</div>
<div class="line"><a name="l00593"></a><span class="lineno">  593</span>&#160;                                                        &amp;FrameBufferInfo,</div>
<div class="line"><a name="l00594"></a><span class="lineno">  594</span>&#160;                                                        <span class="keyword">sizeof</span>(FrameBufferInfo),</div>
<div class="line"><a name="l00595"></a><span class="lineno">  595</span>&#160;                                                        &amp;BytesReturned);</div>
<div class="line"><a name="l00596"></a><span class="lineno">  596</span>&#160; </div>
<div class="line"><a name="l00597"></a><span class="lineno">  597</span>&#160;                            <span class="keywordflow">if</span> (NT_SUCCESS(Status))</div>
<div class="line"><a name="l00598"></a><span class="lineno">  598</span>&#160;                            {</div>
<div class="line"><a name="l00599"></a><span class="lineno">  599</span>&#160;                                <span class="comment">//</span></div>
<div class="line"><a name="l00600"></a><span class="lineno">  600</span>&#160;                                <span class="comment">// get address of frame buffer</span></div>
<div class="line"><a name="l00601"></a><span class="lineno">  601</span>&#160;                                <span class="comment">//</span></div>
<div class="line"><a name="l00602"></a><span class="lineno">  602</span>&#160; </div>
<div class="line"><a name="l00603"></a><span class="lineno">  603</span>&#160;                                <a class="code" href="a03257.html#a786cd01671f99939368eaa4f602f2410">gpFullscreenFrameBufPtr</a> = (PUCHAR) FrameBufferInfo.FrameBufferBase;</div>
<div class="line"><a name="l00604"></a><span class="lineno">  604</span>&#160;                            }</div>
<div class="line"><a name="l00605"></a><span class="lineno">  605</span>&#160;                            <span class="keywordflow">else</span></div>
<div class="line"><a name="l00606"></a><span class="lineno">  606</span>&#160;                            {</div>
<div class="line"><a name="l00607"></a><span class="lineno">  607</span>&#160; </div>
<div class="line"><a name="l00608"></a><span class="lineno">  608</span>&#160;                                <a class="code" href="a00371.html#a01c4659626880ba56745765a3580a36b">RIPMSG0</a>(<a class="code" href="a00371.html#afa5f32de88404289ec03cd2c0e61e94f">RIP_ERROR</a>, <span class="stringliteral">&quot;Fullscreen setmode: memory mapping failed\n&quot;</span>);</div>
<div class="line"><a name="l00609"></a><span class="lineno">  609</span>&#160;                                Status = STATUS_UNSUCCESSFUL;</div>
<div class="line"><a name="l00610"></a><span class="lineno">  610</span>&#160;                            }</div>
<div class="line"><a name="l00611"></a><span class="lineno">  611</span>&#160; </div>
<div class="line"><a name="l00612"></a><span class="lineno">  612</span>&#160;                        }</div>
<div class="line"><a name="l00613"></a><span class="lineno">  613</span>&#160;                        <span class="keywordflow">else</span></div>
<div class="line"><a name="l00614"></a><span class="lineno">  614</span>&#160;                        {</div>
<div class="line"><a name="l00615"></a><span class="lineno">  615</span>&#160; </div>
<div class="line"><a name="l00616"></a><span class="lineno">  616</span>&#160;                            <a class="code" href="a00371.html#a01c4659626880ba56745765a3580a36b">RIPMSG0</a>(<a class="code" href="a00371.html#afa5f32de88404289ec03cd2c0e61e94f">RIP_ERROR</a>, <span class="stringliteral">&quot;Fullscreen setmode: fullscreen MODESET failed\n&quot;</span>);</div>
<div class="line"><a name="l00617"></a><span class="lineno">  617</span>&#160;                            Status = STATUS_UNSUCCESSFUL;</div>
<div class="line"><a name="l00618"></a><span class="lineno">  618</span>&#160;                        }</div>
<div class="line"><a name="l00619"></a><span class="lineno">  619</span>&#160;                    }</div>
<div class="line"><a name="l00620"></a><span class="lineno">  620</span>&#160;                }</div>
<div class="line"><a name="l00621"></a><span class="lineno">  621</span>&#160; </div>
<div class="line"><a name="l00622"></a><span class="lineno">  622</span>&#160;                <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00623"></a><span class="lineno">  623</span>&#160;            }</div>
<div class="line"><a name="l00624"></a><span class="lineno">  624</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00625"></a><span class="lineno">  625</span>&#160; </div>
<div class="line"><a name="l00626"></a><span class="lineno">  626</span>&#160;        <span class="keywordflow">case</span> FullscreenControlCopyFrameBuffer:</div>
<div class="line"><a name="l00627"></a><span class="lineno">  627</span>&#160; </div>
<div class="line"><a name="l00628"></a><span class="lineno">  628</span>&#160;            TRACE_SWITCH((<span class="stringliteral">&quot;Switching: FullscreenControlCopyFrameBuffer\n&quot;</span>));</div>
<div class="line"><a name="l00629"></a><span class="lineno">  629</span>&#160; </div>
<div class="line"><a name="l00630"></a><span class="lineno">  630</span>&#160;            <a class="code" href="a00371.html#a162a73e20dfabca084a3ebb4581631a8">UserAssert</a>(FullscreenInputLength == (<a class="code" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a>) FullscreenOutputLength);</div>
<div class="line"><a name="l00631"></a><span class="lineno">  631</span>&#160; </div>
<div class="line"><a name="l00632"></a><span class="lineno">  632</span>&#160;            RtlMoveMemory(pFrameBuf + (ULONG)FullscreenOutput,</div>
<div class="line"><a name="l00633"></a><span class="lineno">  633</span>&#160;                          pFrameBuf + (ULONG)FullscreenInput,</div>
<div class="line"><a name="l00634"></a><span class="lineno">  634</span>&#160;                          FullscreenInputLength);</div>
<div class="line"><a name="l00635"></a><span class="lineno">  635</span>&#160; </div>
<div class="line"><a name="l00636"></a><span class="lineno">  636</span>&#160;            <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00637"></a><span class="lineno">  637</span>&#160; </div>
<div class="line"><a name="l00638"></a><span class="lineno">  638</span>&#160;        <span class="keywordflow">case</span> FullscreenControlReadFromFrameBuffer:</div>
<div class="line"><a name="l00639"></a><span class="lineno">  639</span>&#160; </div>
<div class="line"><a name="l00640"></a><span class="lineno">  640</span>&#160;            TRACE_SWITCH((<span class="stringliteral">&quot;Switching: FullscreenControlReadFromFrameBuffer\n&quot;</span>));</div>
<div class="line"><a name="l00641"></a><span class="lineno">  641</span>&#160; </div>
<div class="line"><a name="l00642"></a><span class="lineno">  642</span>&#160;            pFrameBuf += (ULONG) FullscreenInput;</div>
<div class="line"><a name="l00643"></a><span class="lineno">  643</span>&#160;            pCharInfo = (PCHAR_INFO) FullscreenOutput;</div>
<div class="line"><a name="l00644"></a><span class="lineno">  644</span>&#160; </div>
<div class="line"><a name="l00645"></a><span class="lineno">  645</span>&#160;            <a class="code" href="a00371.html#a162a73e20dfabca084a3ebb4581631a8">UserAssert</a>(FullscreenInputLength * 2 == (ULONG) FullscreenOutputLength);</div>
<div class="line"><a name="l00646"></a><span class="lineno">  646</span>&#160; </div>
<div class="line"><a name="l00647"></a><span class="lineno">  647</span>&#160;            <span class="keywordflow">while</span> (FullscreenInputLength)</div>
<div class="line"><a name="l00648"></a><span class="lineno">  648</span>&#160;            {</div>
<div class="line"><a name="l00649"></a><span class="lineno">  649</span>&#160;                pCharInfo-&gt;Char.AsciiChar       = *pFrameBuf++;</div>
<div class="line"><a name="l00650"></a><span class="lineno">  650</span>&#160;                (UCHAR) (pCharInfo-&gt;Attributes) = *pFrameBuf++;</div>
<div class="line"><a name="l00651"></a><span class="lineno">  651</span>&#160; </div>
<div class="line"><a name="l00652"></a><span class="lineno">  652</span>&#160;                FullscreenInputLength -= 2;</div>
<div class="line"><a name="l00653"></a><span class="lineno">  653</span>&#160;                pCharInfo++;</div>
<div class="line"><a name="l00654"></a><span class="lineno">  654</span>&#160;            }</div>
<div class="line"><a name="l00655"></a><span class="lineno">  655</span>&#160; </div>
<div class="line"><a name="l00656"></a><span class="lineno">  656</span>&#160; </div>
<div class="line"><a name="l00657"></a><span class="lineno">  657</span>&#160;            <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00658"></a><span class="lineno">  658</span>&#160; </div>
<div class="line"><a name="l00659"></a><span class="lineno">  659</span>&#160;        <span class="keywordflow">case</span> FullscreenControlWriteToFrameBuffer:</div>
<div class="line"><a name="l00660"></a><span class="lineno">  660</span>&#160; </div>
<div class="line"><a name="l00661"></a><span class="lineno">  661</span>&#160;            <span class="comment">// TRACE_SWITCH((&quot;Switching: FullscreenControlWriteToFrameBuffer\n&quot;));</span></div>
<div class="line"><a name="l00662"></a><span class="lineno">  662</span>&#160; </div>
<div class="line"><a name="l00663"></a><span class="lineno">  663</span>&#160;            pFrameBuf += (ULONG) FullscreenOutput;</div>
<div class="line"><a name="l00664"></a><span class="lineno">  664</span>&#160;            pCharInfo = (PCHAR_INFO) FullscreenInput;</div>
<div class="line"><a name="l00665"></a><span class="lineno">  665</span>&#160; </div>
<div class="line"><a name="l00666"></a><span class="lineno">  666</span>&#160;            <a class="code" href="a00371.html#a162a73e20dfabca084a3ebb4581631a8">UserAssert</a>(FullscreenInputLength == (ULONG) FullscreenOutputLength * 2);</div>
<div class="line"><a name="l00667"></a><span class="lineno">  667</span>&#160; </div>
<div class="line"><a name="l00668"></a><span class="lineno">  668</span>&#160;            <span class="keywordflow">while</span> ((ULONG)FullscreenOutputLength)</div>
<div class="line"><a name="l00669"></a><span class="lineno">  669</span>&#160;            {</div>
<div class="line"><a name="l00670"></a><span class="lineno">  670</span>&#160;                *pFrameBuf++ = pCharInfo-&gt;Char.AsciiChar;</div>
<div class="line"><a name="l00671"></a><span class="lineno">  671</span>&#160;                *pFrameBuf++ = (UCHAR) (pCharInfo-&gt;Attributes);</div>
<div class="line"><a name="l00672"></a><span class="lineno">  672</span>&#160; </div>
<div class="line"><a name="l00673"></a><span class="lineno">  673</span>&#160;                ((ULONG)FullscreenOutputLength) -= 2;</div>
<div class="line"><a name="l00674"></a><span class="lineno">  674</span>&#160;                pCharInfo++;</div>
<div class="line"><a name="l00675"></a><span class="lineno">  675</span>&#160;            }</div>
<div class="line"><a name="l00676"></a><span class="lineno">  676</span>&#160; </div>
<div class="line"><a name="l00677"></a><span class="lineno">  677</span>&#160;            <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00678"></a><span class="lineno">  678</span>&#160; </div>
<div class="line"><a name="l00679"></a><span class="lineno">  679</span>&#160;        <span class="keywordflow">case</span> FullscreenControlReverseMousePointer:</div>
<div class="line"><a name="l00680"></a><span class="lineno">  680</span>&#160; </div>
<div class="line"><a name="l00681"></a><span class="lineno">  681</span>&#160;            TRACE_SWITCH((<span class="stringliteral">&quot;Switching: FullscreenControlReverseMousePointer\n&quot;</span>));</div>
<div class="line"><a name="l00682"></a><span class="lineno">  682</span>&#160; </div>
<div class="line"><a name="l00683"></a><span class="lineno">  683</span>&#160;            pFrameBuf += (ULONG) FullscreenInput;</div>
<div class="line"><a name="l00684"></a><span class="lineno">  684</span>&#160; </div>
<div class="line"><a name="l00685"></a><span class="lineno">  685</span>&#160;            Attribute =  (*(pFrameBuf + 1) &amp; 0xF0) &gt;&gt; 4;</div>
<div class="line"><a name="l00686"></a><span class="lineno">  686</span>&#160;            Attribute |= (*(pFrameBuf + 1) &amp; 0x0F) &lt;&lt; 4;</div>
<div class="line"><a name="l00687"></a><span class="lineno">  687</span>&#160;            *(pFrameBuf + 1) = Attribute;</div>
<div class="line"><a name="l00688"></a><span class="lineno">  688</span>&#160; </div>
<div class="line"><a name="l00689"></a><span class="lineno">  689</span>&#160;            <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00690"></a><span class="lineno">  690</span>&#160; </div>
<div class="line"><a name="l00691"></a><span class="lineno">  691</span>&#160;        }</div>
<div class="line"><a name="l00692"></a><span class="lineno">  692</span>&#160;    }</div>
<div class="line"><a name="l00693"></a><span class="lineno">  693</span>&#160;    <span class="keywordflow">else</span></div>
<div class="line"><a name="l00694"></a><span class="lineno">  694</span>&#160;    {</div>
<div class="line"><a name="l00695"></a><span class="lineno">  695</span>&#160;        <span class="comment">//</span></div>
<div class="line"><a name="l00696"></a><span class="lineno">  696</span>&#160;        <span class="comment">// For all real operations, check the output buffer parameters</span></div>
<div class="line"><a name="l00697"></a><span class="lineno">  697</span>&#160;        <span class="comment">//</span></div>
<div class="line"><a name="l00698"></a><span class="lineno">  698</span>&#160; </div>
<div class="line"><a name="l00699"></a><span class="lineno">  699</span>&#160;        <span class="keywordflow">if</span> ((FullscreenOutput == NULL) != (FullscreenOutputLength == NULL))</div>
<div class="line"><a name="l00700"></a><span class="lineno">  700</span>&#160;        {</div>
<div class="line"><a name="l00701"></a><span class="lineno">  701</span>&#160;            <a class="code" href="a00371.html#a01c4659626880ba56745765a3580a36b">RIPMSG0</a>(<a class="code" href="a00371.html#afa5f32de88404289ec03cd2c0e61e94f">RIP_ERROR</a>, <span class="stringliteral">&quot;Fullscreen control - inconsistent output buffer information\n&quot;</span>);</div>
<div class="line"><a name="l00702"></a><span class="lineno">  702</span>&#160;            Status = STATUS_INVALID_PARAMETER_4;</div>
<div class="line"><a name="l00703"></a><span class="lineno">  703</span>&#160;        }</div>
<div class="line"><a name="l00704"></a><span class="lineno">  704</span>&#160;        <span class="keywordflow">else</span></div>
<div class="line"><a name="l00705"></a><span class="lineno">  705</span>&#160;        {</div>
<div class="line"><a name="l00706"></a><span class="lineno">  706</span>&#160;            <span class="comment">//</span></div>
<div class="line"><a name="l00707"></a><span class="lineno">  707</span>&#160;            <span class="comment">// We must now capture the buffers so they can be safely passed down to the</span></div>
<div class="line"><a name="l00708"></a><span class="lineno">  708</span>&#160;            <span class="comment">// video miniport driver</span></div>
<div class="line"><a name="l00709"></a><span class="lineno">  709</span>&#160;            <span class="comment">//</span></div>
<div class="line"><a name="l00710"></a><span class="lineno">  710</span>&#160; </div>
<div class="line"><a name="l00711"></a><span class="lineno">  711</span>&#160;            cCapBuffer = FullscreenInputLength;</div>
<div class="line"><a name="l00712"></a><span class="lineno">  712</span>&#160; </div>
<div class="line"><a name="l00713"></a><span class="lineno">  713</span>&#160;            <span class="keywordflow">if</span> (FullscreenOutputLength)</div>
<div class="line"><a name="l00714"></a><span class="lineno">  714</span>&#160;            {</div>
<div class="line"><a name="l00715"></a><span class="lineno">  715</span>&#160;                cCapBuffer = max(cCapBuffer,*FullscreenOutputLength);</div>
<div class="line"><a name="l00716"></a><span class="lineno">  716</span>&#160;            }</div>
<div class="line"><a name="l00717"></a><span class="lineno">  717</span>&#160; </div>
<div class="line"><a name="l00718"></a><span class="lineno">  718</span>&#160;            <span class="keywordflow">if</span> (cCapBuffer)</div>
<div class="line"><a name="l00719"></a><span class="lineno">  719</span>&#160;            {</div>
<div class="line"><a name="l00720"></a><span class="lineno">  720</span>&#160;                pCapBuffer = UserAllocPoolWithQuota(cCapBuffer, TAG_FULLSCREEN);</div>
<div class="line"><a name="l00721"></a><span class="lineno">  721</span>&#160; </div>
<div class="line"><a name="l00722"></a><span class="lineno">  722</span>&#160;                <span class="keywordflow">try</span></div>
<div class="line"><a name="l00723"></a><span class="lineno">  723</span>&#160;                {</div>
<div class="line"><a name="l00724"></a><span class="lineno">  724</span>&#160;                    ProbeForRead(FullscreenInput, FullscreenInputLength, <span class="keyword">sizeof</span>(UCHAR));</div>
<div class="line"><a name="l00725"></a><span class="lineno">  725</span>&#160;                    RtlCopyMemory(pCapBuffer, FullscreenInput, FullscreenInputLength);</div>
<div class="line"><a name="l00726"></a><span class="lineno">  726</span>&#160;                }</div>
<div class="line"><a name="l00727"></a><span class="lineno">  727</span>&#160;                except (EXCEPTION_EXECUTE_HANDLER)</div>
<div class="line"><a name="l00728"></a><span class="lineno">  728</span>&#160;                {</div>
<div class="line"><a name="l00729"></a><span class="lineno">  729</span>&#160;                    <a class="code" href="a00371.html#a01c4659626880ba56745765a3580a36b">RIPMSG0</a>(<a class="code" href="a00371.html#afa5f32de88404289ec03cd2c0e61e94f">RIP_ERROR</a>, <span class="stringliteral">&quot;Fullscreen control - error processing input buffer\n&quot;</span>);</div>
<div class="line"><a name="l00730"></a><span class="lineno">  730</span>&#160;                }</div>
<div class="line"><a name="l00731"></a><span class="lineno">  731</span>&#160;            }</div>
<div class="line"><a name="l00732"></a><span class="lineno">  732</span>&#160; </div>
<div class="line"><a name="l00733"></a><span class="lineno">  733</span>&#160;            <span class="comment">//</span></div>
<div class="line"><a name="l00734"></a><span class="lineno">  734</span>&#160;            <span class="comment">// For now, the IOCTL will always be sent to the VGA compatible device.</span></div>
<div class="line"><a name="l00735"></a><span class="lineno">  735</span>&#160;            <span class="comment">// We have a global for the handle to this device.</span></div>
<div class="line"><a name="l00736"></a><span class="lineno">  736</span>&#160;            <span class="comment">//</span></div>
<div class="line"><a name="l00737"></a><span class="lineno">  737</span>&#160; </div>
<div class="line"><a name="l00738"></a><span class="lineno">  738</span>&#160;            Status = GreDeviceIoControl(<a class="code" href="a03257.html#aea20d6528ad57e108c962a4fcb2e91d9">gphysDevInfo</a>[0].pDeviceHandle,</div>
<div class="line"><a name="l00739"></a><span class="lineno">  739</span>&#160;                                        ioctl,</div>
<div class="line"><a name="l00740"></a><span class="lineno">  740</span>&#160;                                        pCapBuffer,</div>
<div class="line"><a name="l00741"></a><span class="lineno">  741</span>&#160;                                        cCapBuffer,</div>
<div class="line"><a name="l00742"></a><span class="lineno">  742</span>&#160;                                        pCapBuffer,</div>
<div class="line"><a name="l00743"></a><span class="lineno">  743</span>&#160;                                        cCapBuffer,</div>
<div class="line"><a name="l00744"></a><span class="lineno">  744</span>&#160;                                        &amp;BytesReturned);</div>
<div class="line"><a name="l00745"></a><span class="lineno">  745</span>&#160; </div>
<div class="line"><a name="l00746"></a><span class="lineno">  746</span>&#160;            TRACE_SWITCH((<span class="stringliteral">&quot;Switching: FullscreenControl: IOCTL status is %08lx\n&quot;</span>,</div>
<div class="line"><a name="l00747"></a><span class="lineno">  747</span>&#160;                          Status));</div>
<div class="line"><a name="l00748"></a><span class="lineno">  748</span>&#160; </div>
<div class="line"><a name="l00749"></a><span class="lineno">  749</span>&#160;            <span class="keywordflow">if</span> (cCapBuffer &amp;&amp; FullscreenOutputLength &amp;&amp; NT_SUCCESS(Status))</div>
<div class="line"><a name="l00750"></a><span class="lineno">  750</span>&#160;            {</div>
<div class="line"><a name="l00751"></a><span class="lineno">  751</span>&#160;                <span class="keywordflow">try</span></div>
<div class="line"><a name="l00752"></a><span class="lineno">  752</span>&#160;                {</div>
<div class="line"><a name="l00753"></a><span class="lineno">  753</span>&#160;                    *FullscreenOutputLength = BytesReturned;</div>
<div class="line"><a name="l00754"></a><span class="lineno">  754</span>&#160; </div>
<div class="line"><a name="l00755"></a><span class="lineno">  755</span>&#160;                    ProbeForWrite(FullscreenOutput, *FullscreenOutputLength, <span class="keyword">sizeof</span>(UCHAR));</div>
<div class="line"><a name="l00756"></a><span class="lineno">  756</span>&#160;                    RtlCopyMemory(FullscreenOutput, pCapBuffer, *FullscreenOutputLength);</div>
<div class="line"><a name="l00757"></a><span class="lineno">  757</span>&#160;                }</div>
<div class="line"><a name="l00758"></a><span class="lineno">  758</span>&#160;                except (EXCEPTION_EXECUTE_HANDLER)</div>
<div class="line"><a name="l00759"></a><span class="lineno">  759</span>&#160;                {</div>
<div class="line"><a name="l00760"></a><span class="lineno">  760</span>&#160;                    <a class="code" href="a00371.html#a01c4659626880ba56745765a3580a36b">RIPMSG0</a>(<a class="code" href="a00371.html#afa5f32de88404289ec03cd2c0e61e94f">RIP_ERROR</a>, <span class="stringliteral">&quot;Fullscreen control - error processing output buffer\n&quot;</span>);</div>
<div class="line"><a name="l00761"></a><span class="lineno">  761</span>&#160;                }</div>
<div class="line"><a name="l00762"></a><span class="lineno">  762</span>&#160;            }</div>
<div class="line"><a name="l00763"></a><span class="lineno">  763</span>&#160; </div>
<div class="line"><a name="l00764"></a><span class="lineno">  764</span>&#160;            <span class="keywordflow">if</span> (pCapBuffer)</div>
<div class="line"><a name="l00765"></a><span class="lineno">  765</span>&#160;            {</div>
<div class="line"><a name="l00766"></a><span class="lineno">  766</span>&#160;                UserFreePool(pCapBuffer);</div>
<div class="line"><a name="l00767"></a><span class="lineno">  767</span>&#160;            }</div>
<div class="line"><a name="l00768"></a><span class="lineno">  768</span>&#160;        }</div>
<div class="line"><a name="l00769"></a><span class="lineno">  769</span>&#160;    }</div>
<div class="line"><a name="l00770"></a><span class="lineno">  770</span>&#160; </div>
<div class="line"><a name="l00771"></a><span class="lineno">  771</span>&#160;    <a class="code" href="a00899.html#ac2181d07596893ed44d18aa267ce4d23">LeaveCrit</a>();</div>
<div class="line"><a name="l00772"></a><span class="lineno">  772</span>&#160; </div>
<div class="line"><a name="l00773"></a><span class="lineno">  773</span>&#160;    <span class="keywordflow">return</span> (Status);</div>
<div class="line"><a name="l00774"></a><span class="lineno">  774</span>&#160;}</div>
</div><!-- fragment -->
<p class="reference">引用了 <a class="el" href="a00365_source.html#l01552">tagPHYSICAL_DEV_INFO::cbdevmodeInfo</a>, <a class="el" href="a00365_source.html#l01553">tagPHYSICAL_DEV_INFO::devmodeInfo</a>, <a class="el" href="a00563_source.html#l00175">DWORD</a>, <a class="el" href="a00899.html#ae451a2dc8791c420d7c956a63adc33ba">EnterCrit()</a>, <a class="el" href="a00689_source.html#l00051">fGdiEnabled</a>, <a class="el" href="a03257_source.html#l00079">gpFullscreenFrameBufPtr</a>, <a class="el" href="a03257_source.html#l00095">gphysDevInfo</a>, <a class="el" href="a00899.html#ac2181d07596893ed44d18aa267ce4d23">LeaveCrit()</a>, <a class="el" href="a00371_source.html#l00028">RIP_ERROR</a>, <a class="el" href="a00371_source.html#l00131">RIPMSG0</a> , 以及 <a class="el" href="a00950_source.html#l00117">UserAssert</a>.</p>

</div>
</div>
<a id="ac54f401520871421830eeed1d34dd321"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac54f401520871421830eeed1d34dd321">&#9670;&nbsp;</a></span>ResetDisplayDevice()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">VOID ResetDisplayDevice </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00365.html#a07e239ec4a8e696c787df685bce70b61">PDESKTOP</a>&#160;</td>
          <td class="paramname"><em>pdesk</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00365.html#ab392d2a1a1f08851fa36fb5af594de27">PDISPLAYINFO</a>&#160;</td>
          <td class="paramname"><em>pDI</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a>&#160;</td>
          <td class="paramname"><em>CDS_Flags</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="a00689_source.html">fullscr.c</a> 第 <a class="el" href="a00689_source.html#l00884">884</a> 行定义.</p>
<div class="fragment"><div class="line"><a name="l00888"></a><span class="lineno">  888</span>&#160;{</div>
<div class="line"><a name="l00889"></a><span class="lineno">  889</span>&#160;    RECT rcOldWork;</div>
<div class="line"><a name="l00890"></a><span class="lineno">  890</span>&#160;    RECT rcOldScreen;</div>
<div class="line"><a name="l00891"></a><span class="lineno">  891</span>&#160;    WORD wOldBpp;</div>
<div class="line"><a name="l00892"></a><span class="lineno">  892</span>&#160; </div>
<div class="line"><a name="l00893"></a><span class="lineno">  893</span>&#160;    <span class="comment">/*</span></div>
<div class="line"><a name="l00894"></a><span class="lineno">  894</span>&#160;<span class="comment">     * Save old dimenstions for use in calculating the new work areas.</span></div>
<div class="line"><a name="l00895"></a><span class="lineno">  895</span>&#160;<span class="comment">     */</span></div>
<div class="line"><a name="l00896"></a><span class="lineno">  896</span>&#160;    <a class="code" href="a00935.html#a31ccccdb469eefbb55d18b71a26af0da">CopyRect</a>(&amp;rcOldScreen, &amp;pDI-&gt;<a class="code" href="a02605.html#a263f5b35c44d9f9ae5c74acae8037644">rcScreen</a>);</div>
<div class="line"><a name="l00897"></a><span class="lineno">  897</span>&#160;    <a class="code" href="a00935.html#a31ccccdb469eefbb55d18b71a26af0da">CopyRect</a>(&amp;rcOldWork, &amp;<a class="code" href="a00020.html#ad760da1dd81d9e84dee607d18edfde39">gpsi</a>-&gt;<a class="code" href="a02513.html#ad47c3c3836f1cb6cfb9ee4dd5d344496">rcWork</a>);</div>
<div class="line"><a name="l00898"></a><span class="lineno">  898</span>&#160; </div>
<div class="line"><a name="l00899"></a><span class="lineno">  899</span>&#160;    <span class="comment">/*</span></div>
<div class="line"><a name="l00900"></a><span class="lineno">  900</span>&#160;<span class="comment">     * Initialize the new rectangle dimensions.</span></div>
<div class="line"><a name="l00901"></a><span class="lineno">  901</span>&#160;<span class="comment">     */</span></div>
<div class="line"><a name="l00902"></a><span class="lineno">  902</span>&#160;    <a class="code" href="a00935.html#a479bbe69c871894f6ca23dfa237481ad">SetRect</a>(&amp;pDI-&gt;<a class="code" href="a02605.html#a263f5b35c44d9f9ae5c74acae8037644">rcScreen</a>,</div>
<div class="line"><a name="l00903"></a><span class="lineno">  903</span>&#160;            0,</div>
<div class="line"><a name="l00904"></a><span class="lineno">  904</span>&#160;            0,</div>
<div class="line"><a name="l00905"></a><span class="lineno">  905</span>&#160;            GreGetDeviceCaps(pDI-&gt;<a class="code" href="a02605.html#af0da313e582dc95c2853349086631cd8">hdcScreen</a>, DESKTOPHORZRES),</div>
<div class="line"><a name="l00906"></a><span class="lineno">  906</span>&#160;            GreGetDeviceCaps(pDI-&gt;<a class="code" href="a02605.html#af0da313e582dc95c2853349086631cd8">hdcScreen</a>, DESKTOPVERTRES));</div>
<div class="line"><a name="l00907"></a><span class="lineno">  907</span>&#160; </div>
<div class="line"><a name="l00908"></a><span class="lineno">  908</span>&#160;    <a class="code" href="a00935.html#a479bbe69c871894f6ca23dfa237481ad">SetRect</a>(&amp;pDI-&gt;<a class="code" href="a02605.html#a7ae1e4da76ad52e90f87fe39f43b2c4f">rcPrimaryScreen</a>,</div>
<div class="line"><a name="l00909"></a><span class="lineno">  909</span>&#160;            0,</div>
<div class="line"><a name="l00910"></a><span class="lineno">  910</span>&#160;            0,</div>
<div class="line"><a name="l00911"></a><span class="lineno">  911</span>&#160;            GreGetDeviceCaps(pDI-&gt;<a class="code" href="a02605.html#af0da313e582dc95c2853349086631cd8">hdcScreen</a>, HORZRES),</div>
<div class="line"><a name="l00912"></a><span class="lineno">  912</span>&#160;            GreGetDeviceCaps(pDI-&gt;<a class="code" href="a02605.html#af0da313e582dc95c2853349086631cd8">hdcScreen</a>, VERTRES));</div>
<div class="line"><a name="l00913"></a><span class="lineno">  913</span>&#160; </div>
<div class="line"><a name="l00914"></a><span class="lineno">  914</span>&#160;    <span class="comment">/*</span></div>
<div class="line"><a name="l00915"></a><span class="lineno">  915</span>&#160;<span class="comment">     * Initialize the desktop work area.  Currently this is using the</span></div>
<div class="line"><a name="l00916"></a><span class="lineno">  916</span>&#160;<span class="comment">     * global gpsi.  Future implementation will be off the desktop.</span></div>
<div class="line"><a name="l00917"></a><span class="lineno">  917</span>&#160;<span class="comment">     */</span></div>
<div class="line"><a name="l00918"></a><span class="lineno">  918</span>&#160;    <a class="code" href="a00020.html#ad760da1dd81d9e84dee607d18edfde39">gpsi</a>-&gt;<a class="code" href="a02513.html#ad47c3c3836f1cb6cfb9ee4dd5d344496">rcWork</a>.left   = rcOldWork.left;</div>
<div class="line"><a name="l00919"></a><span class="lineno">  919</span>&#160;    <a class="code" href="a00020.html#ad760da1dd81d9e84dee607d18edfde39">gpsi</a>-&gt;<a class="code" href="a02513.html#ad47c3c3836f1cb6cfb9ee4dd5d344496">rcWork</a>.top    = rcOldWork.top;</div>
<div class="line"><a name="l00920"></a><span class="lineno">  920</span>&#160;    <a class="code" href="a00020.html#ad760da1dd81d9e84dee607d18edfde39">gpsi</a>-&gt;<a class="code" href="a02513.html#ad47c3c3836f1cb6cfb9ee4dd5d344496">rcWork</a>.right  = pDI-&gt;<a class="code" href="a02605.html#a263f5b35c44d9f9ae5c74acae8037644">rcScreen</a>.right  - (rcOldScreen.right - rcOldWork.right);</div>
<div class="line"><a name="l00921"></a><span class="lineno">  921</span>&#160;    <a class="code" href="a00020.html#ad760da1dd81d9e84dee607d18edfde39">gpsi</a>-&gt;<a class="code" href="a02513.html#ad47c3c3836f1cb6cfb9ee4dd5d344496">rcWork</a>.bottom = pDI-&gt;<a class="code" href="a02605.html#a263f5b35c44d9f9ae5c74acae8037644">rcScreen</a>.bottom - (rcOldScreen.bottom - rcOldWork.bottom);</div>
<div class="line"><a name="l00922"></a><span class="lineno">  922</span>&#160; </div>
<div class="line"><a name="l00923"></a><span class="lineno">  923</span>&#160;    <span class="comment">/*</span></div>
<div class="line"><a name="l00924"></a><span class="lineno">  924</span>&#160;<span class="comment">     * Reset palettized flag.</span></div>
<div class="line"><a name="l00925"></a><span class="lineno">  925</span>&#160;<span class="comment">     */</span></div>
<div class="line"><a name="l00926"></a><span class="lineno">  926</span>&#160;    <a class="code" href="a00020.html#ad760da1dd81d9e84dee607d18edfde39">gpsi</a>-&gt;<a class="code" href="a02513.html#af5b9904727246903b73027a6008559db">fPaletteDisplay</a> =</div>
<div class="line"><a name="l00927"></a><span class="lineno">  927</span>&#160;        GreGetDeviceCaps(pDI-&gt;<a class="code" href="a02605.html#af0da313e582dc95c2853349086631cd8">hdcScreen</a>, RASTERCAPS) &amp; RC_PALETTE;</div>
<div class="line"><a name="l00928"></a><span class="lineno">  928</span>&#160; </div>
<div class="line"><a name="l00929"></a><span class="lineno">  929</span>&#160;    <span class="comment">/*</span></div>
<div class="line"><a name="l00930"></a><span class="lineno">  930</span>&#160;<span class="comment">     * Reset color depth.</span></div>
<div class="line"><a name="l00931"></a><span class="lineno">  931</span>&#160;<span class="comment">     */</span></div>
<div class="line"><a name="l00932"></a><span class="lineno">  932</span>&#160;    wOldBpp = oemInfo.BitCount;</div>
<div class="line"><a name="l00933"></a><span class="lineno">  933</span>&#160; </div>
<div class="line"><a name="l00934"></a><span class="lineno">  934</span>&#160;    oemInfo.Planes    = GreGetDeviceCaps(<a class="code" href="a03257.html#ab597263bdbb3441715804712fcf29e6d">gpDispInfo</a>-&gt;<a class="code" href="a02605.html#af0da313e582dc95c2853349086631cd8">hdcScreen</a>, PLANES);</div>
<div class="line"><a name="l00935"></a><span class="lineno">  935</span>&#160;    oemInfo.BitsPixel = GreGetDeviceCaps(<a class="code" href="a03257.html#ab597263bdbb3441715804712fcf29e6d">gpDispInfo</a>-&gt;<a class="code" href="a02605.html#af0da313e582dc95c2853349086631cd8">hdcScreen</a>, BITSPIXEL);</div>
<div class="line"><a name="l00936"></a><span class="lineno">  936</span>&#160;    oemInfo.BitCount  = oemInfo.Planes * oemInfo.BitsPixel;</div>
<div class="line"><a name="l00937"></a><span class="lineno">  937</span>&#160; </div>
<div class="line"><a name="l00938"></a><span class="lineno">  938</span>&#160;    <span class="comment">/*</span></div>
<div class="line"><a name="l00939"></a><span class="lineno">  939</span>&#160;<span class="comment">     * Reset the dimenstions of the displayinfo.</span></div>
<div class="line"><a name="l00940"></a><span class="lineno">  940</span>&#160;<span class="comment">     */</span></div>
<div class="line"><a name="l00941"></a><span class="lineno">  941</span>&#160;    pDI-&gt;<a class="code" href="a02605.html#ad3e0b5376b5114f4269df20805a3a85e">cxPixelsPerInch</a> = GreGetDeviceCaps(pDI-&gt;<a class="code" href="a02605.html#af0da313e582dc95c2853349086631cd8">hdcScreen</a>, LOGPIXELSX);</div>
<div class="line"><a name="l00942"></a><span class="lineno">  942</span>&#160;    pDI-&gt;<a class="code" href="a02605.html#a2458aa3b22e3415ba05fc9fba634628d">cyPixelsPerInch</a> = GreGetDeviceCaps(pDI-&gt;<a class="code" href="a02605.html#af0da313e582dc95c2853349086631cd8">hdcScreen</a>, LOGPIXELSY);</div>
<div class="line"><a name="l00943"></a><span class="lineno">  943</span>&#160; </div>
<div class="line"><a name="l00944"></a><span class="lineno">  944</span>&#160;    <span class="comment">/*</span></div>
<div class="line"><a name="l00945"></a><span class="lineno">  945</span>&#160;<span class="comment">     * Set the desktop-metrics stuff--working area.</span></div>
<div class="line"><a name="l00946"></a><span class="lineno">  946</span>&#160;<span class="comment">     */</span></div>
<div class="line"><a name="l00947"></a><span class="lineno">  947</span>&#160;    <a class="code" href="a00827.html#a4772e1acd6cc80e53926db81c089b5f0">SetDesktopMetrics</a>();</div>
<div class="line"><a name="l00948"></a><span class="lineno">  948</span>&#160; </div>
<div class="line"><a name="l00949"></a><span class="lineno">  949</span>&#160;    SYSMET(CXSCREEN)   = pDI-&gt;<a class="code" href="a02605.html#a7ae1e4da76ad52e90f87fe39f43b2c4f">rcPrimaryScreen</a>.right - pDI-&gt;<a class="code" href="a02605.html#a7ae1e4da76ad52e90f87fe39f43b2c4f">rcPrimaryScreen</a>.left;</div>
<div class="line"><a name="l00950"></a><span class="lineno">  950</span>&#160;    SYSMET(CYSCREEN)   = pDI-&gt;<a class="code" href="a02605.html#a7ae1e4da76ad52e90f87fe39f43b2c4f">rcPrimaryScreen</a>.bottom - pDI-&gt;<a class="code" href="a02605.html#a7ae1e4da76ad52e90f87fe39f43b2c4f">rcPrimaryScreen</a>.top;</div>
<div class="line"><a name="l00951"></a><span class="lineno">  951</span>&#160;    SYSMET(CXMAXTRACK) = SYSMET(CXSCREEN) + (2 * (SYSMET(CXSIZEFRAME) + SYSMET(CXEDGE)));</div>
<div class="line"><a name="l00952"></a><span class="lineno">  952</span>&#160;    SYSMET(CYMAXTRACK) = SYSMET(CYSCREEN) + (2 * (SYSMET(CYSIZEFRAME) + SYSMET(CYEDGE)));</div>
<div class="line"><a name="l00953"></a><span class="lineno">  953</span>&#160; </div>
<div class="line"><a name="l00954"></a><span class="lineno">  954</span>&#160;    <span class="comment">/*</span></div>
<div class="line"><a name="l00955"></a><span class="lineno">  955</span>&#160;<span class="comment">     * Reset magic colors.</span></div>
<div class="line"><a name="l00956"></a><span class="lineno">  956</span>&#160;<span class="comment">     */</span></div>
<div class="line"><a name="l00957"></a><span class="lineno">  957</span>&#160;    <a class="code" href="a00878.html#a384da50d789f362913ef53df4495b559">SetSysColor</a>(COLOR_3DSHADOW   , SYSRGB(3DSHADOW)   , SSCF_SETMAGICCOLORS | SSCF_FORCESOLIDCOLOR);</div>
<div class="line"><a name="l00958"></a><span class="lineno">  958</span>&#160;    <a class="code" href="a00878.html#a384da50d789f362913ef53df4495b559">SetSysColor</a>(COLOR_3DFACE     , SYSRGB(3DFACE)     , SSCF_SETMAGICCOLORS | SSCF_FORCESOLIDCOLOR);</div>
<div class="line"><a name="l00959"></a><span class="lineno">  959</span>&#160;    <a class="code" href="a00878.html#a384da50d789f362913ef53df4495b559">SetSysColor</a>(COLOR_3DHIGHLIGHT, SYSRGB(3DHIGHLIGHT), SSCF_SETMAGICCOLORS | SSCF_FORCESOLIDCOLOR);</div>
<div class="line"><a name="l00960"></a><span class="lineno">  960</span>&#160; </div>
<div class="line"><a name="l00961"></a><span class="lineno">  961</span>&#160;    <span class="comment">/*</span></div>
<div class="line"><a name="l00962"></a><span class="lineno">  962</span>&#160;<span class="comment">     * Resize all the desktops which share this DISPINFO.</span></div>
<div class="line"><a name="l00963"></a><span class="lineno">  963</span>&#160;<span class="comment">     */</span></div>
<div class="line"><a name="l00964"></a><span class="lineno">  964</span>&#160;    <a class="code" href="a00689.html#a5fba44a86c81b63bd0bea2c0c3542fc8">ResetSharedDesktops</a>(<a class="code" href="a03257.html#ab597263bdbb3441715804712fcf29e6d">gpDispInfo</a>, pdesk, &amp;rcOldWork, CDS_Flags);</div>
<div class="line"><a name="l00965"></a><span class="lineno">  965</span>&#160; </div>
<div class="line"><a name="l00966"></a><span class="lineno">  966</span>&#160; </div>
<div class="line"><a name="l00967"></a><span class="lineno">  967</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="a03257.html#a6fd7fff34b763d3027988693d59a76be">ghbmCaption</a>) {</div>
<div class="line"><a name="l00968"></a><span class="lineno">  968</span>&#160;        GreDeleteObject(<a class="code" href="a03257.html#a6fd7fff34b763d3027988693d59a76be">ghbmCaption</a>);</div>
<div class="line"><a name="l00969"></a><span class="lineno">  969</span>&#160;        <a class="code" href="a03257.html#a6fd7fff34b763d3027988693d59a76be">ghbmCaption</a> = <a class="code" href="a00716.html#a9f946e068766974e04aa7c9e7dea8303">CreateCaptionStrip</a>();</div>
<div class="line"><a name="l00970"></a><span class="lineno">  970</span>&#160;    }</div>
<div class="line"><a name="l00971"></a><span class="lineno">  971</span>&#160; </div>
<div class="line"><a name="l00972"></a><span class="lineno">  972</span>&#160;    <span class="comment">/*</span></div>
<div class="line"><a name="l00973"></a><span class="lineno">  973</span>&#160;<span class="comment">     * Change the wallpaper metrics.</span></div>
<div class="line"><a name="l00974"></a><span class="lineno">  974</span>&#160;<span class="comment">     */</span></div>
<div class="line"><a name="l00975"></a><span class="lineno">  975</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="a03257.html#a15ad49dc77573af8b63b532b82d05cbc">ghbmWallpaper</a>)</div>
<div class="line"><a name="l00976"></a><span class="lineno">  976</span>&#160;        <a class="code" href="a00668.html#a68e971c3810a7065f5aba4d5ee40a8f1">xxxSetDeskWallpaper</a>(SETWALLPAPER_METRICS);</div>
<div class="line"><a name="l00977"></a><span class="lineno">  977</span>&#160; </div>
<div class="line"><a name="l00978"></a><span class="lineno">  978</span>&#160;    <a class="code" href="a00638.html#ac0816c73ec6cd096ee9436e038337f80">_ClipCursor</a>(&amp;pDI-&gt;<a class="code" href="a02605.html#a263f5b35c44d9f9ae5c74acae8037644">rcScreen</a>);</div>
<div class="line"><a name="l00979"></a><span class="lineno">  979</span>&#160; </div>
<div class="line"><a name="l00980"></a><span class="lineno">  980</span>&#160;    <span class="comment">/*</span></div>
<div class="line"><a name="l00981"></a><span class="lineno">  981</span>&#160;<span class="comment">     * Invalidate all DCE&#39;s visrgns.</span></div>
<div class="line"><a name="l00982"></a><span class="lineno">  982</span>&#160;<span class="comment">     */</span></div>
<div class="line"><a name="l00983"></a><span class="lineno">  983</span>&#160;    <a class="code" href="a00644.html#a69728f013275d0f4332dded4eb2432a3">InvalidateDCCache</a>(pdesk-&gt;<a class="code" href="a02801.html#a76d4881aa4c15330103e83a80e6b5dc7">pDeskInfo</a>-&gt;<a class="code" href="a02609.html#a68937d60a6f49b7a8431db62b38ea721">spwnd</a>, 0);</div>
<div class="line"><a name="l00984"></a><span class="lineno">  984</span>&#160; </div>
<div class="line"><a name="l00985"></a><span class="lineno">  985</span>&#160;<span class="preprocessor">#ifdef LATER // Maybe Never</span></div>
<div class="line"><a name="l00986"></a><span class="lineno">  986</span>&#160;    <span class="comment">/*</span></div>
<div class="line"><a name="l00987"></a><span class="lineno">  987</span>&#160;<span class="comment">     * Flush icons and cursors and more metric stuff.</span></div>
<div class="line"><a name="l00988"></a><span class="lineno">  988</span>&#160;<span class="comment">     *</span></div>
<div class="line"><a name="l00989"></a><span class="lineno">  989</span>&#160;<span class="comment">     * We may never want to do this, since we do ChangeDisplaySettings</span></div>
<div class="line"><a name="l00990"></a><span class="lineno">  990</span>&#160;<span class="comment">     * across desktop-switches and console-fullscreen modes.  By calling</span></div>
<div class="line"><a name="l00991"></a><span class="lineno">  991</span>&#160;<span class="comment">     * the metric changes, we would be forcing desktop-attribute settings</span></div>
<div class="line"><a name="l00992"></a><span class="lineno">  992</span>&#160;<span class="comment">     * to change to the default (from win.ini).  It looks much nicer to</span></div>
<div class="line"><a name="l00993"></a><span class="lineno">  993</span>&#160;<span class="comment">     * allow this to be preserved across switches.</span></div>
<div class="line"><a name="l00994"></a><span class="lineno">  994</span>&#160;<span class="comment">     */</span></div>
<div class="line"><a name="l00995"></a><span class="lineno">  995</span>&#160;    <a class="code" href="a00716.html#aa84edae0e7919ca4f55d198b201a3e5a">SetWindowNCMetrics</a>(NULL, TRUE, -1);</div>
<div class="line"><a name="l00996"></a><span class="lineno">  996</span>&#160;    <a class="code" href="a00716.html#a0df9d021542718987a45d43d815c161c">SetMinMetrics</a>(NULL);</div>
<div class="line"><a name="l00997"></a><span class="lineno">  997</span>&#160; </div>
<div class="line"><a name="l00998"></a><span class="lineno">  998</span>&#160;    <a class="code" href="a00716.html#acd52966f6d457f68619ccb6006e4fccf">SetIconMetrics</a>(NULL);</div>
<div class="line"><a name="l00999"></a><span class="lineno">  999</span>&#160;    <a class="code" href="a00719.html#aa6a4ca775f97490e22f8ecac65cdc03f">UpdateSystemCursorsFromRegistry</a>();</div>
<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160;    <a class="code" href="a00719.html#a8e2c487045938ea775827e2d2e5bca69">UpdateSystemIconsFromRegistry</a>();</div>
<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160; </div>
<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160; </div>
<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160;    <span class="comment">/*</span></div>
<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160;<span class="comment">     * Broadcast that the display has changed resolution.  We are going</span></div>
<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160;<span class="comment">     * to specify the desktop for the changing-desktop.  That way we</span></div>
<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160;<span class="comment">     * don&#39;t get confused as to what desktop to broadcast to.</span></div>
<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160;<span class="comment">     */</span></div>
<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160;    <a class="code" href="a00842.html#adb5204decd255d5005372b2c12890113">xxxBroadcastMessage</a>(pdesk-&gt;<a class="code" href="a02801.html#a76d4881aa4c15330103e83a80e6b5dc7">pDeskInfo</a>-&gt;<a class="code" href="a02609.html#a68937d60a6f49b7a8431db62b38ea721">spwnd</a>,</div>
<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160;                        WM_DISPLAYCHANGE,</div>
<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160;                        oemInfo.BitCount,</div>
<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160;                        MAKELONG(SYSMET(CXSCREEN), SYSMET(CYSCREEN)),</div>
<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160;                        BMSG_SENDNOTIFYMSG,</div>
<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160;                        NULL);</div>
<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160; </div>
<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160;    <span class="comment">/*</span></div>
<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160;<span class="comment">     * Broadcast a color-change if we were not in fullscreen, and a</span></div>
<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160;<span class="comment">     * color-change took effect.</span></div>
<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160;<span class="comment">     */</span></div>
<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160;    <span class="keywordflow">if</span> (!(CDS_Flags &amp; CDS_FULLSCREEN) &amp;&amp; (oemInfo.BitCount != wOldBpp)) {</div>
<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160; </div>
<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160;<span class="preprocessor">#if 1 // We might want to remove this call, since color-change seems</span></div>
<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160;      <span class="comment">// to provide apps the notification.  Need to review</span></div>
<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160;      <span class="comment">// chriswil - 06/11/96</span></div>
<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160; </div>
<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160;        <a class="code" href="a00842.html#adb5204decd255d5005372b2c12890113">xxxBroadcastMessage</a>(pdesk-&gt;<a class="code" href="a02801.html#a76d4881aa4c15330103e83a80e6b5dc7">pDeskInfo</a>-&gt;<a class="code" href="a02609.html#a68937d60a6f49b7a8431db62b38ea721">spwnd</a>,</div>
<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160;                            WM_SETTINGCHANGE,</div>
<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160;                            0,</div>
<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160;                            0,</div>
<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160;                            BMSG_SENDNOTIFYMSG,</div>
<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160;                            NULL);</div>
<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160; </div>
<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160;        <a class="code" href="a00842.html#adb5204decd255d5005372b2c12890113">xxxBroadcastMessage</a>(pdesk-&gt;<a class="code" href="a02801.html#a76d4881aa4c15330103e83a80e6b5dc7">pDeskInfo</a>-&gt;<a class="code" href="a02609.html#a68937d60a6f49b7a8431db62b38ea721">spwnd</a>,</div>
<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160;                            WM_SYSCOLORCHANGE,</div>
<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160;                            0,</div>
<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160;                            0,</div>
<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160;                            BMSG_SENDNOTIFYMSG,</div>
<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160;                            NULL);</div>
<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160;    }</div>
<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160; </div>
<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160;    <span class="comment">/*</span></div>
<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160;<span class="comment">     * If the user performed a CTL-ESC, it is possible that the</span></div>
<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160;<span class="comment">     * tray-window is then in the menu-loop.  We want to clear this</span></div>
<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160;<span class="comment">     * out so that we don&#39;t leave improper menu positioning.</span></div>
<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160;<span class="comment">     */</span></div>
<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="a03257.html#a01d6b23c241a057b5e276bc3095a01eb">gpqForeground</a> &amp;&amp; <a class="code" href="a03257.html#a01d6b23c241a057b5e276bc3095a01eb">gpqForeground</a>-&gt;<a class="code" href="a02869.html#a50df387cc5ba51033fb9e767c430f72f">spwndCapture</a>)</div>
<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160;        <a class="code" href="a00842.html#a4a4a6ef58238afeb2930d10ed87d2853">QueueNotifyMessage</a>(<a class="code" href="a03257.html#a01d6b23c241a057b5e276bc3095a01eb">gpqForeground</a>-&gt;<a class="code" href="a02869.html#a50df387cc5ba51033fb9e767c430f72f">spwndCapture</a>, WM_CANCELMODE, 0, 0l);</div>
<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160;}</div>
</div><!-- fragment -->
<p class="reference">引用了 <a class="el" href="a00638_source.html#l00205">_ClipCursor()</a>, <a class="el" href="a00935_source.html#l00391">CopyRect()</a>, <a class="el" href="a00716_source.html#l00442">CreateCaptionStrip()</a>, <a class="el" href="a00365_source.html#l01580">tagDISPLAYINFO::cxPixelsPerInch</a>, <a class="el" href="a00365_source.html#l01581">tagDISPLAYINFO::cyPixelsPerInch</a>, <a class="el" href="a00365_source.html#l00993">tagSERVERINFO::fPaletteDisplay</a>, <a class="el" href="a03257_source.html#l00329">ghbmCaption</a>, <a class="el" href="a03257_source.html#l00026">ghbmWallpaper</a>, <a class="el" href="a03257_source.html#l00125">gpDispInfo</a>, <a class="el" href="a03257_source.html#l00133">gpqForeground</a>, <a class="el" href="a00020_source.html#l00039">gpsi</a>, <a class="el" href="a00365_source.html#l01566">tagDISPLAYINFO::hdcScreen</a>, <a class="el" href="a00644_source.html#l01644">InvalidateDCCache()</a>, <a class="el" href="a00899_source.html#l01706">tagDESKTOP::pDeskInfo</a>, <a class="el" href="a00842_source.html#l00888">QueueNotifyMessage()</a>, <a class="el" href="a00365_source.html#l01571">tagDISPLAYINFO::rcPrimaryScreen</a>, <a class="el" href="a00365_source.html#l01570">tagDISPLAYINFO::rcScreen</a>, <a class="el" href="a00365_source.html#l01007">tagSERVERINFO::rcWork</a>, <a class="el" href="a00689_source.html#l00793">ResetSharedDesktops()</a>, <a class="el" href="a00827_source.html#l00144">SetDesktopMetrics()</a>, <a class="el" href="a00716_source.html#l01096">SetIconMetrics()</a>, <a class="el" href="a00716_source.html#l01053">SetMinMetrics()</a>, <a class="el" href="a00935_source.html#l00021">SetRect()</a>, <a class="el" href="a00878_source.html#l00097">SetSysColor()</a>, <a class="el" href="a00716_source.html#l00970">SetWindowNCMetrics()</a>, <a class="el" href="a00365_source.html#l01603">tagDESKTOPINFO::spwnd</a>, <a class="el" href="a00899_source.html#l02166">tagQ::spwndCapture</a>, <a class="el" href="a00719_source.html#l00899">UpdateSystemCursorsFromRegistry()</a>, <a class="el" href="a00719_source.html#l00955">UpdateSystemIconsFromRegistry()</a>, <a class="el" href="a00842_source.html#l02898">xxxBroadcastMessage()</a> , 以及 <a class="el" href="a00668_source.html#l01094">xxxSetDeskWallpaper()</a>.</p>

<p class="reference">被这些函数引用 <a class="el" href="a00689_source.html#l01097">UserChangeDisplaySettings()</a>.</p>

</div>
</div>
<a id="a5fba44a86c81b63bd0bea2c0c3542fc8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5fba44a86c81b63bd0bea2c0c3542fc8">&#9670;&nbsp;</a></span>ResetSharedDesktops()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">VOID ResetSharedDesktops </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00365.html#ab392d2a1a1f08851fa36fb5af594de27">PDISPLAYINFO</a>&#160;</td>
          <td class="paramname"><em>pDIChanged</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00365.html#a07e239ec4a8e696c787df685bce70b61">PDESKTOP</a>&#160;</td>
          <td class="paramname"><em>pdeskChanged</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">LPRECT&#160;</td>
          <td class="paramname"><em>lprOldWork</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a>&#160;</td>
          <td class="paramname"><em>CDS_Flags</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="a00689_source.html">fullscr.c</a> 第 <a class="el" href="a00689_source.html#l00793">793</a> 行定义.</p>
<div class="fragment"><div class="line"><a name="l00798"></a><span class="lineno">  798</span>&#160;{</div>
<div class="line"><a name="l00799"></a><span class="lineno">  799</span>&#160;    <a class="code" href="a02809.html">PWINDOWSTATION</a> pwinsta = <a class="code" href="a00899.html#a792b9004a4d313da382f9a9fd8b5c1aa">_GetProcessWindowStation</a>(NULL);</div>
<div class="line"><a name="l00800"></a><span class="lineno">  800</span>&#160;    <a class="code" href="a02801.html">PDESKTOP</a>       pdesk;</div>
<div class="line"><a name="l00801"></a><span class="lineno">  801</span>&#160;    <a class="code" href="a03608.html#afd1a0e78d1f88954d93e48ab3821781f">UINT</a>           xNew;</div>
<div class="line"><a name="l00802"></a><span class="lineno">  802</span>&#160;    <a class="code" href="a03608.html#afd1a0e78d1f88954d93e48ab3821781f">UINT</a>           yNew;</div>
<div class="line"><a name="l00803"></a><span class="lineno">  803</span>&#160;    HRGN           hrgn;</div>
<div class="line"><a name="l00804"></a><span class="lineno">  804</span>&#160; </div>
<div class="line"><a name="l00805"></a><span class="lineno">  805</span>&#160;    <span class="keywordflow">if</span> (pwinsta == NULL) {</div>
<div class="line"><a name="l00806"></a><span class="lineno">  806</span>&#160; </div>
<div class="line"><a name="l00807"></a><span class="lineno">  807</span>&#160;        TRACE_SWITCH((<span class="stringliteral">&quot;ResetSharedDesktops - NULL window station !\n&quot;</span>));</div>
<div class="line"><a name="l00808"></a><span class="lineno">  808</span>&#160;        <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00809"></a><span class="lineno">  809</span>&#160;    }</div>
<div class="line"><a name="l00810"></a><span class="lineno">  810</span>&#160; </div>
<div class="line"><a name="l00811"></a><span class="lineno">  811</span>&#160;    <span class="keywordflow">for</span> (pdesk = pwinsta-&gt;<a class="code" href="a02809.html#aafbda282c78d875d4491cf817366dc1b">rpdeskList</a>; pdesk; pdesk = pdesk-&gt;<a class="code" href="a02801.html#ace92d08d0736aef3f0b73273a6e3e5f7">rpdeskNext</a>) {</div>
<div class="line"><a name="l00812"></a><span class="lineno">  812</span>&#160; </div>
<div class="line"><a name="l00813"></a><span class="lineno">  813</span>&#160;        <span class="comment">/*</span></div>
<div class="line"><a name="l00814"></a><span class="lineno">  814</span>&#160;<span class="comment">         * Make sure this is a shared DISPINFO.</span></div>
<div class="line"><a name="l00815"></a><span class="lineno">  815</span>&#160;<span class="comment">         */</span></div>
<div class="line"><a name="l00816"></a><span class="lineno">  816</span>&#160;        <span class="keywordflow">if</span> (pdesk-&gt;<a class="code" href="a02801.html#a7865078d53afb2719414b44d87f75c5d">pDispInfo</a> == pDIChanged) {</div>
<div class="line"><a name="l00817"></a><span class="lineno">  817</span>&#160; </div>
<div class="line"><a name="l00818"></a><span class="lineno">  818</span>&#160;<span class="preprocessor">#if 0</span></div>
<div class="line"><a name="l00819"></a><span class="lineno">  819</span>&#160;            <span class="comment">/*</span></div>
<div class="line"><a name="l00820"></a><span class="lineno">  820</span>&#160;<span class="comment">             * This is the preferable method to set the desktop-window.</span></div>
<div class="line"><a name="l00821"></a><span class="lineno">  821</span>&#160;<span class="comment">             * However, this causes synchronization problems where we</span></div>
<div class="line"><a name="l00822"></a><span class="lineno">  822</span>&#160;<span class="comment">             * leave the critical-section allowing other apps to call</span></div>
<div class="line"><a name="l00823"></a><span class="lineno">  823</span>&#160;<span class="comment">             * ChangeDisplaySettings() and thus mucking up the works.</span></div>
<div class="line"><a name="l00824"></a><span class="lineno">  824</span>&#160;<span class="comment">             *</span></div>
<div class="line"><a name="l00825"></a><span class="lineno">  825</span>&#160;<span class="comment">             * By calculating the vis-rgn ourselves, we can assure that</span></div>
<div class="line"><a name="l00826"></a><span class="lineno">  826</span>&#160;<span class="comment">             * the clipping is current for the desktop even when we leave</span></div>
<div class="line"><a name="l00827"></a><span class="lineno">  827</span>&#160;<span class="comment">             * the section.</span></div>
<div class="line"><a name="l00828"></a><span class="lineno">  828</span>&#160;<span class="comment">             */</span></div>
<div class="line"><a name="l00829"></a><span class="lineno">  829</span>&#160;            {</div>
<div class="line"><a name="l00830"></a><span class="lineno">  830</span>&#160;                <a class="code" href="a01881.html">TL</a> tlpwnd;</div>
<div class="line"><a name="l00831"></a><span class="lineno">  831</span>&#160; </div>
<div class="line"><a name="l00832"></a><span class="lineno">  832</span>&#160;                ThreadLockAlways(pdesk-&gt;<a class="code" href="a02801.html#a76d4881aa4c15330103e83a80e6b5dc7">pDeskInfo</a>-&gt;<a class="code" href="a02609.html#a68937d60a6f49b7a8431db62b38ea721">spwnd</a>, &amp;tlpwnd);</div>
<div class="line"><a name="l00833"></a><span class="lineno">  833</span>&#160;                <a class="code" href="a00872.html#a71170c4c5e4c60d4bc657fe52eb8d8d2">xxxSetWindowPos</a>(pdesk-&gt;<a class="code" href="a02801.html#a76d4881aa4c15330103e83a80e6b5dc7">pDeskInfo</a>-&gt;<a class="code" href="a02609.html#a68937d60a6f49b7a8431db62b38ea721">spwnd</a>,</div>
<div class="line"><a name="l00834"></a><span class="lineno">  834</span>&#160;                                PWND_TOP,</div>
<div class="line"><a name="l00835"></a><span class="lineno">  835</span>&#160;                                pDIChanged-&gt;<a class="code" href="a02605.html#a263f5b35c44d9f9ae5c74acae8037644">rcScreen</a>.left,</div>
<div class="line"><a name="l00836"></a><span class="lineno">  836</span>&#160;                                pDIChanged-&gt;<a class="code" href="a02605.html#a263f5b35c44d9f9ae5c74acae8037644">rcScreen</a>.top,</div>
<div class="line"><a name="l00837"></a><span class="lineno">  837</span>&#160;                                pDIChanged-&gt;<a class="code" href="a02605.html#a263f5b35c44d9f9ae5c74acae8037644">rcScreen</a>.right - pDIChanged-&gt;<a class="code" href="a02605.html#a263f5b35c44d9f9ae5c74acae8037644">rcScreen</a>.left,</div>
<div class="line"><a name="l00838"></a><span class="lineno">  838</span>&#160;                                pDIChanged-&gt;<a class="code" href="a02605.html#a263f5b35c44d9f9ae5c74acae8037644">rcScreen</a>.bottom - pDIChanged-&gt;<a class="code" href="a02605.html#a263f5b35c44d9f9ae5c74acae8037644">rcScreen</a>.top,</div>
<div class="line"><a name="l00839"></a><span class="lineno">  839</span>&#160;                                SWP_NOZORDER | SWP_NOACTIVATE);</div>
<div class="line"><a name="l00840"></a><span class="lineno">  840</span>&#160;                ThreadUnlock(&amp;tlpwnd);</div>
<div class="line"><a name="l00841"></a><span class="lineno">  841</span>&#160;            }</div>
<div class="line"><a name="l00842"></a><span class="lineno">  842</span>&#160;<span class="preprocessor">#else</span></div>
<div class="line"><a name="l00843"></a><span class="lineno">  843</span>&#160;            <a class="code" href="a00935.html#a31ccccdb469eefbb55d18b71a26af0da">CopyRect</a>(&amp;pdesk-&gt;<a class="code" href="a02801.html#a76d4881aa4c15330103e83a80e6b5dc7">pDeskInfo</a>-&gt;<a class="code" href="a02609.html#a68937d60a6f49b7a8431db62b38ea721">spwnd</a>-&gt;<a class="code" href="a02581.html#a2778d611c2b27395e559c94d05732e1f">rcWindow</a>, &amp;pDIChanged-&gt;<a class="code" href="a02605.html#a263f5b35c44d9f9ae5c74acae8037644">rcScreen</a>);</div>
<div class="line"><a name="l00844"></a><span class="lineno">  844</span>&#160;            <a class="code" href="a00935.html#a31ccccdb469eefbb55d18b71a26af0da">CopyRect</a>(&amp;pdesk-&gt;<a class="code" href="a02801.html#a76d4881aa4c15330103e83a80e6b5dc7">pDeskInfo</a>-&gt;<a class="code" href="a02609.html#a68937d60a6f49b7a8431db62b38ea721">spwnd</a>-&gt;<a class="code" href="a02581.html#a17d59d04094aef8b577c0aa781cdf2c6">rcClient</a>, &amp;pDIChanged-&gt;<a class="code" href="a02605.html#a263f5b35c44d9f9ae5c74acae8037644">rcScreen</a>);</div>
<div class="line"><a name="l00845"></a><span class="lineno">  845</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00846"></a><span class="lineno">  846</span>&#160; </div>
<div class="line"><a name="l00847"></a><span class="lineno">  847</span>&#160;            <span class="keywordflow">if</span> (!(CDS_Flags &amp; CDS_FULLSCREEN))</div>
<div class="line"><a name="l00848"></a><span class="lineno">  848</span>&#160;                <a class="code" href="a00827.html#a3f3a74ea22ded68444f3404548b94874">DesktopRecalc</a>(lprOldWork, &amp;<a class="code" href="a00020.html#ad760da1dd81d9e84dee607d18edfde39">gpsi</a>-&gt;<a class="code" href="a02513.html#ad47c3c3836f1cb6cfb9ee4dd5d344496">rcWork</a>, FALSE);</div>
<div class="line"><a name="l00849"></a><span class="lineno">  849</span>&#160; </div>
<div class="line"><a name="l00850"></a><span class="lineno">  850</span>&#160;            <span class="comment">/*</span></div>
<div class="line"><a name="l00851"></a><span class="lineno">  851</span>&#160;<span class="comment">             * Position mouse so that it is within the new visrgn, once we</span></div>
<div class="line"><a name="l00852"></a><span class="lineno">  852</span>&#160;<span class="comment">             * recalc it.</span></div>
<div class="line"><a name="l00853"></a><span class="lineno">  853</span>&#160;<span class="comment">             */</span></div>
<div class="line"><a name="l00854"></a><span class="lineno">  854</span>&#160;            xNew = (pDIChanged-&gt;<a class="code" href="a02605.html#a263f5b35c44d9f9ae5c74acae8037644">rcScreen</a>.right - pDIChanged-&gt;<a class="code" href="a02605.html#a263f5b35c44d9f9ae5c74acae8037644">rcScreen</a>.left) &gt;&gt; 1;</div>
<div class="line"><a name="l00855"></a><span class="lineno">  855</span>&#160;            yNew = (pDIChanged-&gt;<a class="code" href="a02605.html#a263f5b35c44d9f9ae5c74acae8037644">rcScreen</a>.bottom - pDIChanged-&gt;<a class="code" href="a02605.html#a263f5b35c44d9f9ae5c74acae8037644">rcScreen</a>.top) &gt;&gt; 1;</div>
<div class="line"><a name="l00856"></a><span class="lineno">  856</span>&#160; </div>
<div class="line"><a name="l00857"></a><span class="lineno">  857</span>&#160;            <a class="code" href="a00638.html#a3b1dddef2c0ab8276c2cce2733ced1d9">InternalSetCursorPos</a>(xNew, yNew, pdesk);</div>
<div class="line"><a name="l00858"></a><span class="lineno">  858</span>&#160;        }</div>
<div class="line"><a name="l00859"></a><span class="lineno">  859</span>&#160;    }</div>
<div class="line"><a name="l00860"></a><span class="lineno">  860</span>&#160; </div>
<div class="line"><a name="l00861"></a><span class="lineno">  861</span>&#160;    <span class="comment">/*</span></div>
<div class="line"><a name="l00862"></a><span class="lineno">  862</span>&#160;<span class="comment">     * Recalc the desktop visrgn.  Since the hdcScreen is shared amoungts</span></div>
<div class="line"><a name="l00863"></a><span class="lineno">  863</span>&#160;<span class="comment">     * all the</span></div>
<div class="line"><a name="l00864"></a><span class="lineno">  864</span>&#160;<span class="comment">     */</span></div>
<div class="line"><a name="l00865"></a><span class="lineno">  865</span>&#160;    hrgn = GreCreateRectRgn(0, 0, 0, 0);</div>
<div class="line"><a name="l00866"></a><span class="lineno">  866</span>&#160; </div>
<div class="line"><a name="l00867"></a><span class="lineno">  867</span>&#160;    <a class="code" href="a00899.html#ab5b6a53d2b84dedad66b13f7f4b8c035">CalcVisRgn</a>(&amp;hrgn,</div>
<div class="line"><a name="l00868"></a><span class="lineno">  868</span>&#160;               pdeskChanged-&gt;<a class="code" href="a02801.html#a76d4881aa4c15330103e83a80e6b5dc7">pDeskInfo</a>-&gt;<a class="code" href="a02609.html#a68937d60a6f49b7a8431db62b38ea721">spwnd</a>,</div>
<div class="line"><a name="l00869"></a><span class="lineno">  869</span>&#160;               pdeskChanged-&gt;<a class="code" href="a02801.html#a76d4881aa4c15330103e83a80e6b5dc7">pDeskInfo</a>-&gt;<a class="code" href="a02609.html#a68937d60a6f49b7a8431db62b38ea721">spwnd</a>,</div>
<div class="line"><a name="l00870"></a><span class="lineno">  870</span>&#160;               DCX_WINDOW);</div>
<div class="line"><a name="l00871"></a><span class="lineno">  871</span>&#160; </div>
<div class="line"><a name="l00872"></a><span class="lineno">  872</span>&#160;    GreSelectVisRgn(pDIChanged-&gt;<a class="code" href="a02605.html#af0da313e582dc95c2853349086631cd8">hdcScreen</a>, hrgn, NULL, SVR_DELETEOLD);</div>
<div class="line"><a name="l00873"></a><span class="lineno">  873</span>&#160; </div>
<div class="line"><a name="l00874"></a><span class="lineno">  874</span>&#160;}</div>
</div><!-- fragment -->
<p class="reference">引用了 <a class="el" href="a00920_source.html#l00891">_GetProcessWindowStation()</a>, <a class="el" href="a00905_source.html#l00441">CalcVisRgn()</a>, <a class="el" href="a00935_source.html#l00391">CopyRect()</a>, <a class="el" href="a00827_source.html#l00344">DesktopRecalc()</a>, <a class="el" href="a00020_source.html#l00039">gpsi</a>, <a class="el" href="a00365_source.html#l01566">tagDISPLAYINFO::hdcScreen</a>, <a class="el" href="a00638_source.html#l00110">InternalSetCursorPos()</a>, <a class="el" href="a00899_source.html#l01706">tagDESKTOP::pDeskInfo</a>, <a class="el" href="a00899_source.html#l01707">tagDESKTOP::pDispInfo</a>, <a class="el" href="a00365_source.html#l01399">tagWND::rcClient</a>, <a class="el" href="a00365_source.html#l01570">tagDISPLAYINFO::rcScreen</a>, <a class="el" href="a00365_source.html#l01398">tagWND::rcWindow</a>, <a class="el" href="a00365_source.html#l01007">tagSERVERINFO::rcWork</a>, <a class="el" href="a00899_source.html#l01746">tagWINDOWSTATION::rpdeskList</a>, <a class="el" href="a00899_source.html#l01709">tagDESKTOP::rpdeskNext</a>, <a class="el" href="a00365_source.html#l01603">tagDESKTOPINFO::spwnd</a>, <a class="el" href="a03608.html#afd1a0e78d1f88954d93e48ab3821781f">UINT()</a> , 以及 <a class="el" href="a00872_source.html#l01169">xxxSetWindowPos()</a>.</p>

<p class="reference">被这些函数引用 <a class="el" href="a00689_source.html#l00884">ResetDisplayDevice()</a>.</p>

</div>
</div>
<a id="a317b5986c94a0fe6aec5cd38123cf2a3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a317b5986c94a0fe6aec5cd38123cf2a3">&#9670;&nbsp;</a></span>SetVDMCursorBounds()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void SetVDMCursorBounds </td>
          <td>(</td>
          <td class="paramtype">LPRECT&#160;</td>
          <td class="paramname"><em>lprc</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="a00638_source.html">cursor.c</a> 第 <a class="el" href="a00638_source.html#l00357">357</a> 行定义.</p>
<div class="fragment"><div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160;{</div>
<div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160;    <span class="keywordflow">if</span> (lprc != NULL) {</div>
<div class="line"><a name="l00361"></a><span class="lineno">  361</span>&#160; </div>
<div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160;        <span class="comment">/*</span></div>
<div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;<span class="comment">         * Set grcVDMCursorBounds before gfVDMBoundsActive, because</span></div>
<div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160;<span class="comment">         * MoveEvent() calls BoundCursor() from outside the USER CritSect!</span></div>
<div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;<span class="comment">         */</span></div>
<div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;        <a class="code" href="a00638.html#a79ebb837219045b09dfd497a1ee41e58">grcVDMCursorBounds</a> = *lprc;</div>
<div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;        <a class="code" href="a00638.html#a3dcfb2116a84b0aad0f519d7fdfc4610">gfVDMBoundsActive</a> = TRUE;</div>
<div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160; </div>
<div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160;    } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160; </div>
<div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;        <span class="comment">/*</span></div>
<div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160;<span class="comment">         * Turn vdm bounds off.</span></div>
<div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160;<span class="comment">         */</span></div>
<div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;        <a class="code" href="a00638.html#a3dcfb2116a84b0aad0f519d7fdfc4610">gfVDMBoundsActive</a> = FALSE;</div>
<div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160;    }</div>
<div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160;}</div>
</div><!-- fragment -->
<p class="reference">被这些函数引用 <a class="el" href="a00689_source.html#l00140">xxxMakeWindowForegroundWithState()</a>.</p>

</div>
</div>
<a id="aca39fc0e877a9047585888e7790d20ed"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aca39fc0e877a9047585888e7790d20ed">&#9670;&nbsp;</a></span>UserChangeDisplaySettings()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">LONG UserChangeDisplaySettings </td>
          <td>(</td>
          <td class="paramtype">IN PUNICODE_STRING&#160;</td>
          <td class="paramname"><em>pstrDeviceName</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">IN LPDEVMODEW&#160;</td>
          <td class="paramname"><em>pDevMode</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">IN <a class="el" href="a00365.html#a1a2ef1c363aa0787a8f8a7dde2a34aaf">PWND</a>&#160;</td>
          <td class="paramname"><em>pwnd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">IN <a class="el" href="a00365.html#a07e239ec4a8e696c787df685bce70b61">PDESKTOP</a>&#160;</td>
          <td class="paramname"><em>pdesk</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">IN <a class="el" href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a>&#160;</td>
          <td class="paramname"><em>dwFlags</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">IN PVOID&#160;</td>
          <td class="paramname"><em>lParam</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">IN BOOL&#160;</td>
          <td class="paramname"><em>bKernelMode</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="a00689_source.html">fullscr.c</a> 第 <a class="el" href="a00689_source.html#l01097">1097</a> 行定义.</p>
<div class="fragment"><div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160;{</div>
<div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160;    NTSTATUS           ntStatus;</div>
<div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160;    UNICODE_STRING     strDevice;</div>
<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160;    UNICODE_STRING     us;</div>
<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160;    PDEVMODEW          pCaptDevmode = NULL;</div>
<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160;    LONG               status = DISP_CHANGE_SUCCESSFUL;</div>
<div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160;    <a class="code" href="a01881.html">TL</a>                 tlpwnd;</div>
<div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160;    BOOL               bTestMode;</div>
<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160;    BOOL               bCurrentDevice = FALSE;</div>
<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160;    BOOL               bExclusiveDevice = FALSE;</div>
<div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160;    RECT               rect;</div>
<div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160;    PRECT              prect = NULL;</div>
<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160;    <a class="code" href="a02601.html">PPHYSICAL_DEV_INFO</a> physdevinfo;</div>
<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160; </div>
<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160;    HANDLE            hkRegistry;</div>
<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160;    OBJECT_ATTRIBUTES ObjectAttributes;</div>
<div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>&#160;    UNICODE_STRING    UnicodeString;</div>
<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>&#160;    ULONG             disableAll;</div>
<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160;    ULONG             defaultValue = 0;</div>
<div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160; </div>
<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160;    RTL_QUERY_REGISTRY_TABLE QueryTable[] = {</div>
<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160;        {NULL, RTL_QUERY_REGISTRY_DIRECT, L<span class="stringliteral">&quot;DisableAll&quot;</span>, &amp;disableAll,</div>
<div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>&#160;         REG_DWORD, &amp;defaultValue, 4},</div>
<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>&#160;        {NULL, 0, NULL}</div>
<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>&#160;    };</div>
<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>&#160; </div>
<div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>&#160; </div>
<div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>&#160;    TRACE_INIT((<span class="stringliteral">&quot;ChangeDisplaySettings - Entering\n&quot;</span>));</div>
<div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>&#160;    TRACE_SWITCH((<span class="stringliteral">&quot;ChangeDisplaySettings - Entering\n&quot;</span>));</div>
<div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>&#160; </div>
<div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>&#160;    TRACE_INIT((<span class="stringliteral">&quot;    Flags -&quot;</span>));</div>
<div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>&#160; </div>
<div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>&#160;    <span class="keywordflow">if</span> (dwFlags &amp; CDS_UPDATEREGISTRY) TRACE_INIT((<span class="stringliteral">&quot; CDS_UPDATEREGISTRY&quot;</span>));</div>
<div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>&#160;    <span class="keywordflow">if</span> (dwFlags &amp; CDS_TEST          ) TRACE_INIT((<span class="stringliteral">&quot; CDS_TEST &quot;</span>));</div>
<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>&#160;    <span class="keywordflow">if</span> (dwFlags &amp; CDS_FULLSCREEN    ) TRACE_INIT((<span class="stringliteral">&quot; CDS_FULLSCREEN &quot;</span>));</div>
<div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>&#160;    <span class="keywordflow">if</span> (dwFlags &amp; CDS_GLOBAL        ) TRACE_INIT((<span class="stringliteral">&quot; CDS_GLOBAL &quot;</span>));</div>
<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>&#160;    <span class="keywordflow">if</span> (dwFlags &amp; CDS_SET_PRIMARY   ) TRACE_INIT((<span class="stringliteral">&quot; CDS_SET_PRIMARY &quot;</span>));</div>
<div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>&#160;    <span class="keywordflow">if</span> (dwFlags &amp; CDS_RESET         ) TRACE_INIT((<span class="stringliteral">&quot; CDS_RESET &quot;</span>));</div>
<div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>&#160;    <span class="keywordflow">if</span> (dwFlags &amp; CDS_SETRECT       ) TRACE_INIT((<span class="stringliteral">&quot; CDS_SETRECT &quot;</span>));</div>
<div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>&#160;    <span class="keywordflow">if</span> (dwFlags &amp; CDS_NORESET       ) TRACE_INIT((<span class="stringliteral">&quot; CDS_NORESET &quot;</span>));</div>
<div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>&#160; </div>
<div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>&#160;    TRACE_INIT((<span class="stringliteral">&quot;\n&quot;</span>));</div>
<div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>&#160;    TRACE_INIT((<span class="stringliteral">&quot;    pDevMode %08lx\n&quot;</span>, pDevMode));</div>
<div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>&#160; </div>
<div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>&#160;    <span class="keywordflow">if</span> (pDevMode) {</div>
<div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>&#160; </div>
<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>&#160;        TRACE_INIT((<span class="stringliteral">&quot;      Size        = %d\n&quot;</span>,    pDevMode-&gt;dmSize));</div>
<div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>&#160;        TRACE_INIT((<span class="stringliteral">&quot;      Fields      = %08lx\n&quot;</span>, pDevMode-&gt;dmFields));</div>
<div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160;        TRACE_INIT((<span class="stringliteral">&quot;      XResolution = %d\n&quot;</span>,    pDevMode-&gt;dmPelsWidth));</div>
<div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>&#160;        TRACE_INIT((<span class="stringliteral">&quot;      YResolution = %d\n&quot;</span>,    pDevMode-&gt;dmPelsHeight));</div>
<div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>&#160;        TRACE_INIT((<span class="stringliteral">&quot;      Bpp         = %d\n&quot;</span>,    pDevMode-&gt;dmBitsPerPel));</div>
<div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>&#160;        TRACE_INIT((<span class="stringliteral">&quot;      Frequency   = %d\n&quot;</span>,    pDevMode-&gt;dmDisplayFrequency));</div>
<div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>&#160;        TRACE_INIT((<span class="stringliteral">&quot;      Flags       = %d\n&quot;</span>,    pDevMode-&gt;dmDisplayFlags));</div>
<div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>&#160;        TRACE_INIT((<span class="stringliteral">&quot;      XPanning    = %d\n&quot;</span>,    pDevMode-&gt;dmPanningWidth));</div>
<div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>&#160;        TRACE_INIT((<span class="stringliteral">&quot;      YPanning    = %d\n&quot;</span>,    pDevMode-&gt;dmPanningHeight));</div>
<div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>&#160;        TRACE_INIT((<span class="stringliteral">&quot;      DPI         = %d\n&quot;</span>,    pDevMode-&gt;dmLogPixels));</div>
<div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>&#160;        TRACE_INIT((<span class="stringliteral">&quot;      DriverExtra = %d&quot;</span>,      pDevMode-&gt;dmDriverExtra));</div>
<div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>&#160;        <span class="keywordflow">if</span> (pDevMode-&gt;dmDriverExtra) {</div>
<div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>&#160;            TRACE_INIT((<span class="stringliteral">&quot; - %08lx %08lx\n&quot;</span>,</div>
<div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160;                        *(PULONG)(((PUCHAR)pDevMode)+pDevMode-&gt;dmSize),</div>
<div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>&#160;                        *(PULONG)(((PUCHAR)pDevMode)+pDevMode-&gt;dmSize + 4)));</div>
<div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>&#160;        } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>&#160;            TRACE_INIT((<span class="stringliteral">&quot;\n&quot;</span>));</div>
<div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>&#160;        }</div>
<div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>&#160;    }</div>
<div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>&#160; </div>
<div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>&#160;    <span class="comment">/*</span></div>
<div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>&#160;<span class="comment">     * Determine if we are in the test mode of the API</span></div>
<div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>&#160;<span class="comment">     */</span></div>
<div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>&#160; </div>
<div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>&#160;    bTestMode = dwFlags &amp; CDS_TEST;</div>
<div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>&#160;    dwFlags &amp;= ~CDS_TEST;</div>
<div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>&#160; </div>
<div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>&#160;    <span class="comment">/*</span></div>
<div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>&#160;<span class="comment">     * Perform Error Checking to verify flag combinations are valid.</span></div>
<div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>&#160;<span class="comment">     */</span></div>
<div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>&#160;    <span class="keywordflow">if</span> (dwFlags &amp; (~CDS_VALID)) {</div>
<div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>&#160; </div>
<div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>&#160;        <a class="code" href="a00371.html#a01c4659626880ba56745765a3580a36b">RIPMSG0</a>(<a class="code" href="a00371.html#afa5f32de88404289ec03cd2c0e61e94f">RIP_ERROR</a>, <span class="stringliteral">&quot;ChangeDisplaySettings: invalid flags specified\n&quot;</span>);</div>
<div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>&#160;        <span class="keywordflow">return</span> DISP_CHANGE_BADFLAGS;</div>
<div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>&#160;    }</div>
<div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>&#160; </div>
<div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>&#160;    <span class="comment">/*</span></div>
<div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>&#160;<span class="comment">     * CDS_GLOBAL and CDS_NORESET can only be specified if UPDAREREGISTRY</span></div>
<div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>&#160;<span class="comment">     * is specified.</span></div>
<div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>&#160;<span class="comment">     */</span></div>
<div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>&#160; </div>
<div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>&#160;    <span class="keywordflow">if</span> ( (dwFlags &amp; (CDS_GLOBAL | CDS_NORESET))  &amp;&amp;</div>
<div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>&#160;         (!(dwFlags &amp; CDS_UPDATEREGISTRY))) {</div>
<div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>&#160; </div>
<div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>&#160;        <a class="code" href="a00371.html#a01c4659626880ba56745765a3580a36b">RIPMSG0</a>(<a class="code" href="a00371.html#afa5f32de88404289ec03cd2c0e61e94f">RIP_ERROR</a>, <span class="stringliteral">&quot;ChangeDisplaySettings: invalid registry flags specified\n&quot;</span>);</div>
<div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>&#160;        <span class="keywordflow">return</span> DISP_CHANGE_BADFLAGS;</div>
<div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>&#160;    }</div>
<div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>&#160; </div>
<div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>&#160;    <span class="keywordflow">if</span> ( (dwFlags &amp; CDS_NORESET)  &amp;&amp;</div>
<div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>&#160;         (dwFlags &amp; CDS_RESET)) {</div>
<div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>&#160; </div>
<div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>&#160;        <a class="code" href="a00371.html#a01c4659626880ba56745765a3580a36b">RIPMSG0</a>(<a class="code" href="a00371.html#afa5f32de88404289ec03cd2c0e61e94f">RIP_ERROR</a>, <span class="stringliteral">&quot;ChangeDisplaySettings: RESET and NORESET can not be put together\n&quot;</span>);</div>
<div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>&#160;        <span class="keywordflow">return</span> DISP_CHANGE_BADFLAGS;</div>
<div class="line"><a name="l01204"></a><span class="lineno"> 1204</span>&#160;    }</div>
<div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>&#160; </div>
<div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>&#160;    <span class="keywordflow">if</span> ((dwFlags &amp; CDS_EXCLUSIVE) &amp;&amp; (dwFlags &amp; CDS_FULLSCREEN) &amp;&amp; (dwFlags &amp; CDS_RESET)) {</div>
<div class="line"><a name="l01207"></a><span class="lineno"> 1207</span>&#160; </div>
<div class="line"><a name="l01208"></a><span class="lineno"> 1208</span>&#160;        <a class="code" href="a00371.html#a01c4659626880ba56745765a3580a36b">RIPMSG0</a>(<a class="code" href="a00371.html#afa5f32de88404289ec03cd2c0e61e94f">RIP_ERROR</a>, <span class="stringliteral">&quot;ChangeDisplaySettings: invalid flags specified\n&quot;</span>);</div>
<div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>&#160;        <span class="keywordflow">return</span> DISP_CHANGE_BADFLAGS;</div>
<div class="line"><a name="l01210"></a><span class="lineno"> 1210</span>&#160;    }</div>
<div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>&#160; </div>
<div class="line"><a name="l01212"></a><span class="lineno"> 1212</span>&#160;    <span class="keywordflow">if</span> (lParam &amp;&amp; (!(dwFlags &amp; CDS_SETRECT))) {</div>
<div class="line"><a name="l01213"></a><span class="lineno"> 1213</span>&#160;        <span class="keywordflow">return</span> DISP_CHANGE_BADPARAM;</div>
<div class="line"><a name="l01214"></a><span class="lineno"> 1214</span>&#160;    }</div>
<div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>&#160; </div>
<div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>&#160;    <span class="comment">/*</span></div>
<div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>&#160;<span class="comment">     * Lets capture our parameters.  They are both required.</span></div>
<div class="line"><a name="l01218"></a><span class="lineno"> 1218</span>&#160;<span class="comment">     *</span></div>
<div class="line"><a name="l01219"></a><span class="lineno"> 1219</span>&#160;<span class="comment">     * If the input string is not NULL, then we are trying to affect another</span></div>
<div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>&#160;<span class="comment">     * Device. The device name is the same as for EnumDisplaySettings.</span></div>
<div class="line"><a name="l01221"></a><span class="lineno"> 1221</span>&#160;<span class="comment">     */</span></div>
<div class="line"><a name="l01222"></a><span class="lineno"> 1222</span>&#160; </div>
<div class="line"><a name="l01223"></a><span class="lineno"> 1223</span>&#160;    <span class="keywordflow">if</span> (dwFlags &amp; CDS_SETRECT) {</div>
<div class="line"><a name="l01224"></a><span class="lineno"> 1224</span>&#160; </div>
<div class="line"><a name="l01225"></a><span class="lineno"> 1225</span>&#160;        <span class="keywordflow">if</span> (lParam) {</div>
<div class="line"><a name="l01226"></a><span class="lineno"> 1226</span>&#160; </div>
<div class="line"><a name="l01227"></a><span class="lineno"> 1227</span>&#160;            prect = &amp;rect;</div>
<div class="line"><a name="l01228"></a><span class="lineno"> 1228</span>&#160; </div>
<div class="line"><a name="l01229"></a><span class="lineno"> 1229</span>&#160;            <span class="keywordflow">if</span> (bKernelMode) {</div>
<div class="line"><a name="l01230"></a><span class="lineno"> 1230</span>&#160; </div>
<div class="line"><a name="l01231"></a><span class="lineno"> 1231</span>&#160;                rect = *((PRECT) lParam);</div>
<div class="line"><a name="l01232"></a><span class="lineno"> 1232</span>&#160; </div>
<div class="line"><a name="l01233"></a><span class="lineno"> 1233</span>&#160;            } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l01234"></a><span class="lineno"> 1234</span>&#160; </div>
<div class="line"><a name="l01235"></a><span class="lineno"> 1235</span>&#160;                <span class="keywordflow">try</span> {</div>
<div class="line"><a name="l01236"></a><span class="lineno"> 1236</span>&#160;                    rect = ProbeAndReadRect((PRECT) lParam);</div>
<div class="line"><a name="l01237"></a><span class="lineno"> 1237</span>&#160;                } except (EXCEPTION_EXECUTE_HANDLER) {</div>
<div class="line"><a name="l01238"></a><span class="lineno"> 1238</span>&#160;                    <span class="keywordflow">return</span> DISP_CHANGE_BADPARAM;;</div>
<div class="line"><a name="l01239"></a><span class="lineno"> 1239</span>&#160;                }</div>
<div class="line"><a name="l01240"></a><span class="lineno"> 1240</span>&#160;            }</div>
<div class="line"><a name="l01241"></a><span class="lineno"> 1241</span>&#160;        } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l01242"></a><span class="lineno"> 1242</span>&#160;            prect = (PRECT) -1;</div>
<div class="line"><a name="l01243"></a><span class="lineno"> 1243</span>&#160;        }</div>
<div class="line"><a name="l01244"></a><span class="lineno"> 1244</span>&#160;    }</div>
<div class="line"><a name="l01245"></a><span class="lineno"> 1245</span>&#160; </div>
<div class="line"><a name="l01246"></a><span class="lineno"> 1246</span>&#160;    <span class="keywordflow">if</span> (bKernelMode) {</div>
<div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>&#160; </div>
<div class="line"><a name="l01248"></a><span class="lineno"> 1248</span>&#160;        strDevice = *pstrDeviceName;</div>
<div class="line"><a name="l01249"></a><span class="lineno"> 1249</span>&#160; </div>
<div class="line"><a name="l01250"></a><span class="lineno"> 1250</span>&#160;    } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l01251"></a><span class="lineno"> 1251</span>&#160; </div>
<div class="line"><a name="l01252"></a><span class="lineno"> 1252</span>&#160;        strDevice.Buffer = NULL;</div>
<div class="line"><a name="l01253"></a><span class="lineno"> 1253</span>&#160; </div>
<div class="line"><a name="l01254"></a><span class="lineno"> 1254</span>&#160;        <span class="keywordflow">if</span> (!<a class="code" href="a00665.html#ad1a9b877f3705368d000061536e1b1fb">ProbeAndCaptureDeviceName</a>(&amp;strDevice, pstrDeviceName)) {</div>
<div class="line"><a name="l01255"></a><span class="lineno"> 1255</span>&#160; </div>
<div class="line"><a name="l01256"></a><span class="lineno"> 1256</span>&#160;            <a class="code" href="a00371.html#a01c4659626880ba56745765a3580a36b">RIPMSG0</a>(<a class="code" href="a00371.html#afa5f32de88404289ec03cd2c0e61e94f">RIP_ERROR</a>, <span class="stringliteral">&quot;ChangeDisplaySettings: Bad string\n&quot;</span>);</div>
<div class="line"><a name="l01257"></a><span class="lineno"> 1257</span>&#160;            status = DISP_CHANGE_BADPARAM;</div>
<div class="line"><a name="l01258"></a><span class="lineno"> 1258</span>&#160;            <span class="keywordflow">goto</span> CDS_Exit_NoUnlock;</div>
<div class="line"><a name="l01259"></a><span class="lineno"> 1259</span>&#160;        }</div>
<div class="line"><a name="l01260"></a><span class="lineno"> 1260</span>&#160;    }</div>
<div class="line"><a name="l01261"></a><span class="lineno"> 1261</span>&#160; </div>
<div class="line"><a name="l01262"></a><span class="lineno"> 1262</span>&#160;    <span class="comment">/*</span></div>
<div class="line"><a name="l01263"></a><span class="lineno"> 1263</span>&#160;<span class="comment">     * If the modeset is being done on a non-active desktop, we don&#39;t want</span></div>
<div class="line"><a name="l01264"></a><span class="lineno"> 1264</span>&#160;<span class="comment">     * it too happen.</span></div>
<div class="line"><a name="l01265"></a><span class="lineno"> 1265</span>&#160;<span class="comment">     *</span></div>
<div class="line"><a name="l01266"></a><span class="lineno"> 1266</span>&#160;<span class="comment">     * PtiCurrent()-&gt;rpdesk can be NULL !!! (in the case of thread shutdown).</span></div>
<div class="line"><a name="l01267"></a><span class="lineno"> 1267</span>&#160;<span class="comment">     */</span></div>
<div class="line"><a name="l01268"></a><span class="lineno"> 1268</span>&#160; </div>
<div class="line"><a name="l01269"></a><span class="lineno"> 1269</span>&#160;    <span class="keywordflow">if</span> (pdesk) {</div>
<div class="line"><a name="l01270"></a><span class="lineno"> 1270</span>&#160; </div>
<div class="line"><a name="l01271"></a><span class="lineno"> 1271</span>&#160;        <span class="keywordflow">if</span> (pdesk != <a class="code" href="a03257.html#a326757fcfe334f2ffd59d64d4645d37a">grpdeskRitInput</a>) {</div>
<div class="line"><a name="l01272"></a><span class="lineno"> 1272</span>&#160;            <a class="code" href="a00371.html#a01c4659626880ba56745765a3580a36b">RIPMSG0</a>(<a class="code" href="a00371.html#a41f433389f20db57f042022a662e96de">RIP_WARNING</a>, <span class="stringliteral">&quot;ChangeDisplaySettings on wrong desktop pdesk\n&quot;</span>);</div>
<div class="line"><a name="l01273"></a><span class="lineno"> 1273</span>&#160;            status = DISP_CHANGE_FAILED;</div>
<div class="line"><a name="l01274"></a><span class="lineno"> 1274</span>&#160;            <span class="keywordflow">goto</span> CDS_Exit_NoUnlock;</div>
<div class="line"><a name="l01275"></a><span class="lineno"> 1275</span>&#160;        }</div>
<div class="line"><a name="l01276"></a><span class="lineno"> 1276</span>&#160;        RtlInitUnicodeString(&amp;us, pdesk-&gt;pDispInfo-&gt;pDevInfo-&gt;szNtDeviceName);</div>
<div class="line"><a name="l01277"></a><span class="lineno"> 1277</span>&#160; </div>
<div class="line"><a name="l01278"></a><span class="lineno"> 1278</span>&#160;    } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l01279"></a><span class="lineno"> 1279</span>&#160; </div>
<div class="line"><a name="l01280"></a><span class="lineno"> 1280</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="a00257.html#a8315d2c807ba18ba9e528c40614b6173">PtiCurrent</a>()-&gt;rpdesk != <a class="code" href="a03257.html#a326757fcfe334f2ffd59d64d4645d37a">grpdeskRitInput</a>) {</div>
<div class="line"><a name="l01281"></a><span class="lineno"> 1281</span>&#160;            <a class="code" href="a00371.html#a01c4659626880ba56745765a3580a36b">RIPMSG0</a>(<a class="code" href="a00371.html#a41f433389f20db57f042022a662e96de">RIP_WARNING</a>, <span class="stringliteral">&quot;ChangeDisplaySettings on wrong desktop rpdesk\n&quot;</span>);</div>
<div class="line"><a name="l01282"></a><span class="lineno"> 1282</span>&#160;            status = DISP_CHANGE_FAILED;</div>
<div class="line"><a name="l01283"></a><span class="lineno"> 1283</span>&#160;            <span class="keywordflow">goto</span> CDS_Exit_NoUnlock;</div>
<div class="line"><a name="l01284"></a><span class="lineno"> 1284</span>&#160;        }</div>
<div class="line"><a name="l01285"></a><span class="lineno"> 1285</span>&#160;        RtlInitUnicodeString(&amp;us, <a class="code" href="a00257.html#a8315d2c807ba18ba9e528c40614b6173">PtiCurrent</a>()-&gt;rpdesk-&gt;pDispInfo-&gt;pDevInfo-&gt;szNtDeviceName);</div>
<div class="line"><a name="l01286"></a><span class="lineno"> 1286</span>&#160;    }</div>
<div class="line"><a name="l01287"></a><span class="lineno"> 1287</span>&#160; </div>
<div class="line"><a name="l01288"></a><span class="lineno"> 1288</span>&#160; </div>
<div class="line"><a name="l01289"></a><span class="lineno"> 1289</span>&#160;    <span class="keywordflow">if</span> (RtlEqualUnicodeString(&amp;strDevice,</div>
<div class="line"><a name="l01290"></a><span class="lineno"> 1290</span>&#160;                              &amp;us,</div>
<div class="line"><a name="l01291"></a><span class="lineno"> 1291</span>&#160;                              TRUE)) {</div>
<div class="line"><a name="l01292"></a><span class="lineno"> 1292</span>&#160; </div>
<div class="line"><a name="l01293"></a><span class="lineno"> 1293</span>&#160;        bCurrentDevice = TRUE;</div>
<div class="line"><a name="l01294"></a><span class="lineno"> 1294</span>&#160; </div>
<div class="line"><a name="l01295"></a><span class="lineno"> 1295</span>&#160;    } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l01296"></a><span class="lineno"> 1296</span>&#160; </div>
<div class="line"><a name="l01297"></a><span class="lineno"> 1297</span>&#160;        TRACE_INIT((<span class="stringliteral">&quot;\n ChangeDisplaySettings: This better be an Exclusive device !!!\n&quot;</span>));</div>
<div class="line"><a name="l01298"></a><span class="lineno"> 1298</span>&#160; </div>
<div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>&#160;        <span class="comment">/* fix when we track ownership of secondary display devices */</span></div>
<div class="line"><a name="l01300"></a><span class="lineno"> 1300</span>&#160; </div>
<div class="line"><a name="l01301"></a><span class="lineno"> 1301</span>&#160;        <span class="comment">/* VGACOMPATIBLE will end up in here also right now */</span></div>
<div class="line"><a name="l01302"></a><span class="lineno"> 1302</span>&#160;        bExclusiveDevice = TRUE;</div>
<div class="line"><a name="l01303"></a><span class="lineno"> 1303</span>&#160;    }</div>
<div class="line"><a name="l01304"></a><span class="lineno"> 1304</span>&#160; </div>
<div class="line"><a name="l01305"></a><span class="lineno"> 1305</span>&#160;<span class="preprocessor">#if DBG</span></div>
<div class="line"><a name="l01306"></a><span class="lineno"> 1306</span>&#160;    <span class="comment">/*</span></div>
<div class="line"><a name="l01307"></a><span class="lineno"> 1307</span>&#160;<span class="comment">     * Turn off Tracing for TEST_MODE since it&#39;s generally not interesting.</span></div>
<div class="line"><a name="l01308"></a><span class="lineno"> 1308</span>&#160;<span class="comment">     */</span></div>
<div class="line"><a name="l01309"></a><span class="lineno"> 1309</span>&#160;    <span class="keywordflow">if</span> (bTestMode)</div>
<div class="line"><a name="l01310"></a><span class="lineno"> 1310</span>&#160;        (ULONG) <a class="code" href="a03257.html#adf0068988d4823d1fa1a18bca501899e">TraceDisplayDriverLoad</a> |= 0x80000000;</div>
<div class="line"><a name="l01311"></a><span class="lineno"> 1311</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>&#160; </div>
<div class="line"><a name="l01313"></a><span class="lineno"> 1313</span>&#160;    ntStatus = <a class="code" href="a00665.html#a7f72492be72deb72088a46321f3703e9">ProbeAndCaptureDevmode</a>(&amp;strDevice,</div>
<div class="line"><a name="l01314"></a><span class="lineno"> 1314</span>&#160;                                    &amp;pCaptDevmode,</div>
<div class="line"><a name="l01315"></a><span class="lineno"> 1315</span>&#160;                                    pDevMode,</div>
<div class="line"><a name="l01316"></a><span class="lineno"> 1316</span>&#160;                                    bKernelMode);</div>
<div class="line"><a name="l01317"></a><span class="lineno"> 1317</span>&#160; </div>
<div class="line"><a name="l01318"></a><span class="lineno"> 1318</span>&#160;<span class="preprocessor">#if DBG</span></div>
<div class="line"><a name="l01319"></a><span class="lineno"> 1319</span>&#160;    <span class="keywordflow">if</span> (bTestMode)</div>
<div class="line"><a name="l01320"></a><span class="lineno"> 1320</span>&#160;        (ULONG) <a class="code" href="a03257.html#adf0068988d4823d1fa1a18bca501899e">TraceDisplayDriverLoad</a> &amp;= 0x7FFFFFFF;</div>
<div class="line"><a name="l01321"></a><span class="lineno"> 1321</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l01322"></a><span class="lineno"> 1322</span>&#160; </div>
<div class="line"><a name="l01323"></a><span class="lineno"> 1323</span>&#160;    <span class="keywordflow">if</span> ((!NT_SUCCESS(ntStatus)) ||</div>
<div class="line"><a name="l01324"></a><span class="lineno"> 1324</span>&#160;        (pCaptDevmode == NULL)) {</div>
<div class="line"><a name="l01325"></a><span class="lineno"> 1325</span>&#160; </div>
<div class="line"><a name="l01326"></a><span class="lineno"> 1326</span>&#160;        <a class="code" href="a00371.html#a01c4659626880ba56745765a3580a36b">RIPMSG0</a>(<a class="code" href="a00371.html#a41f433389f20db57f042022a662e96de">RIP_WARNING</a>, <span class="stringliteral">&quot;ChangeDisplaySettings: Bad DEVMODE\n&quot;</span>);</div>
<div class="line"><a name="l01327"></a><span class="lineno"> 1327</span>&#160;        status = DISP_CHANGE_BADPARAM;</div>
<div class="line"><a name="l01328"></a><span class="lineno"> 1328</span>&#160;        <span class="keywordflow">goto</span> CDS_Exit_NoUnlock;</div>
<div class="line"><a name="l01329"></a><span class="lineno"> 1329</span>&#160;    }</div>
<div class="line"><a name="l01330"></a><span class="lineno"> 1330</span>&#160; </div>
<div class="line"><a name="l01331"></a><span class="lineno"> 1331</span>&#160;    <span class="comment">/*</span></div>
<div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>&#160;<span class="comment">     * Write the data to the registry.</span></div>
<div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>&#160;<span class="comment">     *</span></div>
<div class="line"><a name="l01334"></a><span class="lineno"> 1334</span>&#160;<span class="comment">     * This is not supported for the vgacompatible device - so it should</span></div>
<div class="line"><a name="l01335"></a><span class="lineno"> 1335</span>&#160;<span class="comment">     * just fail.  UserGetRegistryHandle should fail with this</span></div>
<div class="line"><a name="l01336"></a><span class="lineno"> 1336</span>&#160;<span class="comment">     * unrecognized string</span></div>
<div class="line"><a name="l01337"></a><span class="lineno"> 1337</span>&#160;<span class="comment">     */</span></div>
<div class="line"><a name="l01338"></a><span class="lineno"> 1338</span>&#160;    <span class="keywordflow">if</span> (dwFlags &amp; CDS_UPDATEREGISTRY) {</div>
<div class="line"><a name="l01339"></a><span class="lineno"> 1339</span>&#160; </div>
<div class="line"><a name="l01340"></a><span class="lineno"> 1340</span>&#160;        NTSTATUS          Status = STATUS_UNSUCCESSFUL;</div>
<div class="line"><a name="l01341"></a><span class="lineno"> 1341</span>&#160; </div>
<div class="line"><a name="l01342"></a><span class="lineno"> 1342</span>&#160;        <span class="comment">/*</span></div>
<div class="line"><a name="l01343"></a><span class="lineno"> 1343</span>&#160;<span class="comment">         * CDS_GLOBAL is the default right now.</span></div>
<div class="line"><a name="l01344"></a><span class="lineno"> 1344</span>&#160;<span class="comment">         * When we store the settings on a per-user basis, then this flag</span></div>
<div class="line"><a name="l01345"></a><span class="lineno"> 1345</span>&#160;<span class="comment">         * will override that behaviour.</span></div>
<div class="line"><a name="l01346"></a><span class="lineno"> 1346</span>&#160;<span class="comment">         */</span></div>
<div class="line"><a name="l01347"></a><span class="lineno"> 1347</span>&#160; </div>
<div class="line"><a name="l01348"></a><span class="lineno"> 1348</span>&#160;        <span class="comment">/*</span></div>
<div class="line"><a name="l01349"></a><span class="lineno"> 1349</span>&#160;<span class="comment">         * Check if the Administrator has diabled this privilege.</span></div>
<div class="line"><a name="l01350"></a><span class="lineno"> 1350</span>&#160;<span class="comment">         * It is on by default.</span></div>
<div class="line"><a name="l01351"></a><span class="lineno"> 1351</span>&#160;<span class="comment">         */</span></div>
<div class="line"><a name="l01352"></a><span class="lineno"> 1352</span>&#160; </div>
<div class="line"><a name="l01353"></a><span class="lineno"> 1353</span>&#160;        disableAll = 0;</div>
<div class="line"><a name="l01354"></a><span class="lineno"> 1354</span>&#160; </div>
<div class="line"><a name="l01355"></a><span class="lineno"> 1355</span>&#160;        RtlInitUnicodeString(&amp;UnicodeString,</div>
<div class="line"><a name="l01356"></a><span class="lineno"> 1356</span>&#160;                             L<span class="stringliteral">&quot;\\Registry\\Machine\\System\\CurrentControlSet\\&quot;</span></div>
<div class="line"><a name="l01357"></a><span class="lineno"> 1357</span>&#160;                             L<span class="stringliteral">&quot;Control\\GraphicsDrivers\\PermanentSettingChanges&quot;</span>);</div>
<div class="line"><a name="l01358"></a><span class="lineno"> 1358</span>&#160; </div>
<div class="line"><a name="l01359"></a><span class="lineno"> 1359</span>&#160;        InitializeObjectAttributes(&amp;ObjectAttributes,</div>
<div class="line"><a name="l01360"></a><span class="lineno"> 1360</span>&#160;                                   &amp;UnicodeString,</div>
<div class="line"><a name="l01361"></a><span class="lineno"> 1361</span>&#160;                                   OBJ_CASE_INSENSITIVE,</div>
<div class="line"><a name="l01362"></a><span class="lineno"> 1362</span>&#160;                                   NULL,</div>
<div class="line"><a name="l01363"></a><span class="lineno"> 1363</span>&#160;                                   NULL);</div>
<div class="line"><a name="l01364"></a><span class="lineno"> 1364</span>&#160; </div>
<div class="line"><a name="l01365"></a><span class="lineno"> 1365</span>&#160;        <span class="keywordflow">if</span> (NT_SUCCESS(ZwOpenKey(&amp;hkRegistry, GENERIC_READ, &amp;ObjectAttributes))) {</div>
<div class="line"><a name="l01366"></a><span class="lineno"> 1366</span>&#160; </div>
<div class="line"><a name="l01367"></a><span class="lineno"> 1367</span>&#160;            RtlQueryRegistryValues(RTL_REGISTRY_HANDLE,</div>
<div class="line"><a name="l01368"></a><span class="lineno"> 1368</span>&#160;                                   (PWSTR)hkRegistry,</div>
<div class="line"><a name="l01369"></a><span class="lineno"> 1369</span>&#160;                                   &amp;QueryTable[0],</div>
<div class="line"><a name="l01370"></a><span class="lineno"> 1370</span>&#160;                                   NULL,</div>
<div class="line"><a name="l01371"></a><span class="lineno"> 1371</span>&#160;                                   NULL);</div>
<div class="line"><a name="l01372"></a><span class="lineno"> 1372</span>&#160; </div>
<div class="line"><a name="l01373"></a><span class="lineno"> 1373</span>&#160;            ZwClose(hkRegistry);</div>
<div class="line"><a name="l01374"></a><span class="lineno"> 1374</span>&#160;        }</div>
<div class="line"><a name="l01375"></a><span class="lineno"> 1375</span>&#160; </div>
<div class="line"><a name="l01376"></a><span class="lineno"> 1376</span>&#160;        <span class="keywordflow">if</span> (disableAll == 0) {</div>
<div class="line"><a name="l01377"></a><span class="lineno"> 1377</span>&#160; </div>
<div class="line"><a name="l01378"></a><span class="lineno"> 1378</span>&#160;            <span class="comment">/*</span></div>
<div class="line"><a name="l01379"></a><span class="lineno"> 1379</span>&#160;<span class="comment">             * Only do the operation if we are not in test mode.</span></div>
<div class="line"><a name="l01380"></a><span class="lineno"> 1380</span>&#160;<span class="comment">             * We can always assume success for this operation in test mode.</span></div>
<div class="line"><a name="l01381"></a><span class="lineno"> 1381</span>&#160;<span class="comment">             *</span></div>
<div class="line"><a name="l01382"></a><span class="lineno"> 1382</span>&#160;<span class="comment">             * It is OK to save parameters to the registry for any device.</span></div>
<div class="line"><a name="l01383"></a><span class="lineno"> 1383</span>&#160;<span class="comment">             * So we just pass the device name on.</span></div>
<div class="line"><a name="l01384"></a><span class="lineno"> 1384</span>&#160;<span class="comment">             */</span></div>
<div class="line"><a name="l01385"></a><span class="lineno"> 1385</span>&#160; </div>
<div class="line"><a name="l01386"></a><span class="lineno"> 1386</span>&#160;            <span class="keywordflow">if</span> (bTestMode) {</div>
<div class="line"><a name="l01387"></a><span class="lineno"> 1387</span>&#160; </div>
<div class="line"><a name="l01388"></a><span class="lineno"> 1388</span>&#160;                Status = STATUS_SUCCESS;</div>
<div class="line"><a name="l01389"></a><span class="lineno"> 1389</span>&#160; </div>
<div class="line"><a name="l01390"></a><span class="lineno"> 1390</span>&#160;            } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l01391"></a><span class="lineno"> 1391</span>&#160; </div>
<div class="line"><a name="l01392"></a><span class="lineno"> 1392</span>&#160;                Status = <a class="code" href="a00665.html#a74dce85d73485fdf46d61ce465e18061">UserSetDisplayDriverParameters</a>(&amp;strDevice,</div>
<div class="line"><a name="l01393"></a><span class="lineno"> 1393</span>&#160;                                                        <a class="code" href="a00899.html#afc13cb8b9a1ddb236b66ee390aa8efdda6760d6d8884c7ede93accae00a0e84b1">DispDriverParamDefault</a>,</div>
<div class="line"><a name="l01394"></a><span class="lineno"> 1394</span>&#160;                                                        pCaptDevmode,</div>
<div class="line"><a name="l01395"></a><span class="lineno"> 1395</span>&#160;                                                        prect);</div>
<div class="line"><a name="l01396"></a><span class="lineno"> 1396</span>&#160;                <span class="keywordflow">if</span> (!NT_SUCCESS(Status)) {</div>
<div class="line"><a name="l01397"></a><span class="lineno"> 1397</span>&#160;                    <a class="code" href="a00371.html#a01c4659626880ba56745765a3580a36b">RIPMSG0</a>(<a class="code" href="a00371.html#afa5f32de88404289ec03cd2c0e61e94f">RIP_ERROR</a>, <span class="stringliteral">&quot;ChangeDisplaySettings: Failed to save registry parameters\n&quot;</span>);</div>
<div class="line"><a name="l01398"></a><span class="lineno"> 1398</span>&#160;                }</div>
<div class="line"><a name="l01399"></a><span class="lineno"> 1399</span>&#160;            }</div>
<div class="line"><a name="l01400"></a><span class="lineno"> 1400</span>&#160;        }</div>
<div class="line"><a name="l01401"></a><span class="lineno"> 1401</span>&#160; </div>
<div class="line"><a name="l01402"></a><span class="lineno"> 1402</span>&#160;        <span class="comment">/*</span></div>
<div class="line"><a name="l01403"></a><span class="lineno"> 1403</span>&#160;<span class="comment">         * Set the appropriate win32 error code</span></div>
<div class="line"><a name="l01404"></a><span class="lineno"> 1404</span>&#160;<span class="comment">         */</span></div>
<div class="line"><a name="l01405"></a><span class="lineno"> 1405</span>&#160; </div>
<div class="line"><a name="l01406"></a><span class="lineno"> 1406</span>&#160;        <span class="keywordflow">if</span> (NT_SUCCESS(Status)) {</div>
<div class="line"><a name="l01407"></a><span class="lineno"> 1407</span>&#160;            status = DISP_CHANGE_SUCCESSFUL;</div>
<div class="line"><a name="l01408"></a><span class="lineno"> 1408</span>&#160;        } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l01409"></a><span class="lineno"> 1409</span>&#160;            status = DISP_CHANGE_NOTUPDATED;</div>
<div class="line"><a name="l01410"></a><span class="lineno"> 1410</span>&#160;            <span class="keywordflow">goto</span> CDS_Exit_NoUnlock;</div>
<div class="line"><a name="l01411"></a><span class="lineno"> 1411</span>&#160;        }</div>
<div class="line"><a name="l01412"></a><span class="lineno"> 1412</span>&#160; </div>
<div class="line"><a name="l01413"></a><span class="lineno"> 1413</span>&#160;        <span class="comment">/*</span></div>
<div class="line"><a name="l01414"></a><span class="lineno"> 1414</span>&#160;<span class="comment">         * This flag indicates we should exit right now, and not reset</span></div>
<div class="line"><a name="l01415"></a><span class="lineno"> 1415</span>&#160;<span class="comment">         * the current screen resolution.</span></div>
<div class="line"><a name="l01416"></a><span class="lineno"> 1416</span>&#160;<span class="comment">         */</span></div>
<div class="line"><a name="l01417"></a><span class="lineno"> 1417</span>&#160; </div>
<div class="line"><a name="l01418"></a><span class="lineno"> 1418</span>&#160;        <span class="keywordflow">if</span> (dwFlags &amp; CDS_NORESET) {</div>
<div class="line"><a name="l01419"></a><span class="lineno"> 1419</span>&#160;            <span class="keywordflow">goto</span> CDS_Exit_NoUnlock;</div>
<div class="line"><a name="l01420"></a><span class="lineno"> 1420</span>&#160;        }</div>
<div class="line"><a name="l01421"></a><span class="lineno"> 1421</span>&#160;    }</div>
<div class="line"><a name="l01422"></a><span class="lineno"> 1422</span>&#160; </div>
<div class="line"><a name="l01423"></a><span class="lineno"> 1423</span>&#160;    <span class="comment">/*</span></div>
<div class="line"><a name="l01424"></a><span class="lineno"> 1424</span>&#160;<span class="comment">     * Check if there are restrictions on changing the resolution dymanically</span></div>
<div class="line"><a name="l01425"></a><span class="lineno"> 1425</span>&#160;<span class="comment">     */</span></div>
<div class="line"><a name="l01426"></a><span class="lineno"> 1426</span>&#160; </div>
<div class="line"><a name="l01427"></a><span class="lineno"> 1427</span>&#160;    disableAll = 0;</div>
<div class="line"><a name="l01428"></a><span class="lineno"> 1428</span>&#160; </div>
<div class="line"><a name="l01429"></a><span class="lineno"> 1429</span>&#160;    RtlInitUnicodeString(&amp;UnicodeString,</div>
<div class="line"><a name="l01430"></a><span class="lineno"> 1430</span>&#160;                         L<span class="stringliteral">&quot;\\Registry\\Machine\\System\\CurrentControlSet\\&quot;</span></div>
<div class="line"><a name="l01431"></a><span class="lineno"> 1431</span>&#160;                         L<span class="stringliteral">&quot;Control\\GraphicsDrivers\\TemporarySettingChanges&quot;</span>);</div>
<div class="line"><a name="l01432"></a><span class="lineno"> 1432</span>&#160; </div>
<div class="line"><a name="l01433"></a><span class="lineno"> 1433</span>&#160;    InitializeObjectAttributes(&amp;ObjectAttributes,</div>
<div class="line"><a name="l01434"></a><span class="lineno"> 1434</span>&#160;                               &amp;UnicodeString,</div>
<div class="line"><a name="l01435"></a><span class="lineno"> 1435</span>&#160;                               OBJ_CASE_INSENSITIVE,</div>
<div class="line"><a name="l01436"></a><span class="lineno"> 1436</span>&#160;                               NULL,</div>
<div class="line"><a name="l01437"></a><span class="lineno"> 1437</span>&#160;                               NULL);</div>
<div class="line"><a name="l01438"></a><span class="lineno"> 1438</span>&#160; </div>
<div class="line"><a name="l01439"></a><span class="lineno"> 1439</span>&#160;    <span class="keywordflow">if</span> (NT_SUCCESS(ZwOpenKey(&amp;hkRegistry, GENERIC_READ, &amp;ObjectAttributes))) {</div>
<div class="line"><a name="l01440"></a><span class="lineno"> 1440</span>&#160; </div>
<div class="line"><a name="l01441"></a><span class="lineno"> 1441</span>&#160;        RtlQueryRegistryValues(RTL_REGISTRY_HANDLE,</div>
<div class="line"><a name="l01442"></a><span class="lineno"> 1442</span>&#160;                               (PWSTR)hkRegistry,</div>
<div class="line"><a name="l01443"></a><span class="lineno"> 1443</span>&#160;                               &amp;QueryTable[0],</div>
<div class="line"><a name="l01444"></a><span class="lineno"> 1444</span>&#160;                               NULL,</div>
<div class="line"><a name="l01445"></a><span class="lineno"> 1445</span>&#160;                               NULL);</div>
<div class="line"><a name="l01446"></a><span class="lineno"> 1446</span>&#160; </div>
<div class="line"><a name="l01447"></a><span class="lineno"> 1447</span>&#160;        ZwClose(hkRegistry);</div>
<div class="line"><a name="l01448"></a><span class="lineno"> 1448</span>&#160;    }</div>
<div class="line"><a name="l01449"></a><span class="lineno"> 1449</span>&#160; </div>
<div class="line"><a name="l01450"></a><span class="lineno"> 1450</span>&#160;    <span class="keywordflow">if</span> (disableAll) {</div>
<div class="line"><a name="l01451"></a><span class="lineno"> 1451</span>&#160;        status = DISP_CHANGE_FAILED;</div>
<div class="line"><a name="l01452"></a><span class="lineno"> 1452</span>&#160;        <span class="keywordflow">goto</span> CDS_Exit_NoUnlock;</div>
<div class="line"><a name="l01453"></a><span class="lineno"> 1453</span>&#160;    }</div>
<div class="line"><a name="l01454"></a><span class="lineno"> 1454</span>&#160; </div>
<div class="line"><a name="l01455"></a><span class="lineno"> 1455</span>&#160;    <span class="comment">/*</span></div>
<div class="line"><a name="l01456"></a><span class="lineno"> 1456</span>&#160;<span class="comment">     * Get the physdevinfo so we can lock the device and get the current</span></div>
<div class="line"><a name="l01457"></a><span class="lineno"> 1457</span>&#160;<span class="comment">     * mode from it.</span></div>
<div class="line"><a name="l01458"></a><span class="lineno"> 1458</span>&#160;<span class="comment">     */</span></div>
<div class="line"><a name="l01459"></a><span class="lineno"> 1459</span>&#160;    physdevinfo = <a class="code" href="a00665.html#a291aca25f546e197608f39e4887001a9">UserGetDeviceFromName</a>(&amp;strDevice,</div>
<div class="line"><a name="l01460"></a><span class="lineno"> 1460</span>&#160;                                        USER_DEVICE_SHARED);</div>
<div class="line"><a name="l01461"></a><span class="lineno"> 1461</span>&#160; </div>
<div class="line"><a name="l01462"></a><span class="lineno"> 1462</span>&#160;    <span class="keywordflow">if</span> (physdevinfo == NULL) {</div>
<div class="line"><a name="l01463"></a><span class="lineno"> 1463</span>&#160;        status = DISP_CHANGE_FAILED;</div>
<div class="line"><a name="l01464"></a><span class="lineno"> 1464</span>&#160;        <span class="keywordflow">goto</span> CDS_Exit_NoUnlock;</div>
<div class="line"><a name="l01465"></a><span class="lineno"> 1465</span>&#160;    }</div>
<div class="line"><a name="l01466"></a><span class="lineno"> 1466</span>&#160; </div>
<div class="line"><a name="l01467"></a><span class="lineno"> 1467</span>&#160;    <span class="comment">/*</span></div>
<div class="line"><a name="l01468"></a><span class="lineno"> 1468</span>&#160;<span class="comment">     * We already validated the DEVMODE.  So we know it&#39;s good (and that the</span></div>
<div class="line"><a name="l01469"></a><span class="lineno"> 1469</span>&#160;<span class="comment">     * mode can be set right now).  All we need to check is if the bit-depth</span></div>
<div class="line"><a name="l01470"></a><span class="lineno"> 1470</span>&#160;<span class="comment">     * could fail.</span></div>
<div class="line"><a name="l01471"></a><span class="lineno"> 1471</span>&#160;<span class="comment">     */</span></div>
<div class="line"><a name="l01472"></a><span class="lineno"> 1472</span>&#160; </div>
<div class="line"><a name="l01473"></a><span class="lineno"> 1473</span>&#160;    <span class="keywordflow">if</span> (bTestMode) {</div>
<div class="line"><a name="l01474"></a><span class="lineno"> 1474</span>&#160; </div>
<div class="line"><a name="l01475"></a><span class="lineno"> 1475</span>&#160;        <span class="comment">/*</span></div>
<div class="line"><a name="l01476"></a><span class="lineno"> 1476</span>&#160;<span class="comment">         * An application can only change the resolution on the fly for a</span></div>
<div class="line"><a name="l01477"></a><span class="lineno"> 1477</span>&#160;<span class="comment">         * device on which it is currently running on (see desktop) or for</span></div>
<div class="line"><a name="l01478"></a><span class="lineno"> 1478</span>&#160;<span class="comment">         * a device that is owns.</span></div>
<div class="line"><a name="l01479"></a><span class="lineno"> 1479</span>&#160;<span class="comment">         *</span></div>
<div class="line"><a name="l01480"></a><span class="lineno"> 1480</span>&#160;<span class="comment">         * Lets check those conditions.</span></div>
<div class="line"><a name="l01481"></a><span class="lineno"> 1481</span>&#160;<span class="comment">         */</span></div>
<div class="line"><a name="l01482"></a><span class="lineno"> 1482</span>&#160; </div>
<div class="line"><a name="l01483"></a><span class="lineno"> 1483</span>&#160;        <span class="keywordflow">if</span> (bCurrentDevice || bExclusiveDevice) {</div>
<div class="line"><a name="l01484"></a><span class="lineno"> 1484</span>&#160; </div>
<div class="line"><a name="l01485"></a><span class="lineno"> 1485</span>&#160;            <span class="comment">/*</span></div>
<div class="line"><a name="l01486"></a><span class="lineno"> 1486</span>&#160;<span class="comment">             * Changing resolution on the fly should always work.</span></div>
<div class="line"><a name="l01487"></a><span class="lineno"> 1487</span>&#160;<span class="comment">             *</span></div>
<div class="line"><a name="l01488"></a><span class="lineno"> 1488</span>&#160;<span class="comment">             * For now, we will let everything go through unless we find bugs</span></div>
<div class="line"><a name="l01489"></a><span class="lineno"> 1489</span>&#160;<span class="comment">             * and andrew wants to disable it</span></div>
<div class="line"><a name="l01490"></a><span class="lineno"> 1490</span>&#160;<span class="comment">             */</span></div>
<div class="line"><a name="l01491"></a><span class="lineno"> 1491</span>&#160; </div>
<div class="line"><a name="l01492"></a><span class="lineno"> 1492</span>&#160;            status = DISP_CHANGE_SUCCESSFUL;</div>
<div class="line"><a name="l01493"></a><span class="lineno"> 1493</span>&#160; </div>
<div class="line"><a name="l01494"></a><span class="lineno"> 1494</span>&#160;            <span class="comment">/*</span></div>
<div class="line"><a name="l01495"></a><span class="lineno"> 1495</span>&#160;<span class="comment">             * multi-display or mirroring drivers can not change resolution on</span></div>
<div class="line"><a name="l01496"></a><span class="lineno"> 1496</span>&#160;<span class="comment">             * the fly for now since the GreDynamicMode change API does not</span></div>
<div class="line"><a name="l01497"></a><span class="lineno"> 1497</span>&#160;<span class="comment">             * support this yet.</span></div>
<div class="line"><a name="l01498"></a><span class="lineno"> 1498</span>&#160;<span class="comment">             */</span></div>
<div class="line"><a name="l01499"></a><span class="lineno"> 1499</span>&#160; </div>
<div class="line"><a name="l01500"></a><span class="lineno"> 1500</span>&#160;            <span class="keywordflow">if</span> (<a class="code" href="a00689.html#a762f2fbf9a0ad4d9a63f7c92adce1297">bMultipleDisplaySystem</a>) {</div>
<div class="line"><a name="l01501"></a><span class="lineno"> 1501</span>&#160;                status = DISP_CHANGE_RESTART;</div>
<div class="line"><a name="l01502"></a><span class="lineno"> 1502</span>&#160;            }</div>
<div class="line"><a name="l01503"></a><span class="lineno"> 1503</span>&#160; </div>
<div class="line"><a name="l01504"></a><span class="lineno"> 1504</span>&#160;            <span class="comment">/*</span></div>
<div class="line"><a name="l01505"></a><span class="lineno"> 1505</span>&#160;<span class="comment">             * Let&#39;s determine if we can change the mode on the fly by</span></div>
<div class="line"><a name="l01506"></a><span class="lineno"> 1506</span>&#160;<span class="comment">             * comparing the string in the DEVMODE to that of the current</span></div>
<div class="line"><a name="l01507"></a><span class="lineno"> 1507</span>&#160;<span class="comment">             * DEVMODE.  If they are different - we need to change drivers -</span></div>
<div class="line"><a name="l01508"></a><span class="lineno"> 1508</span>&#160;<span class="comment">             * then the mode switch requires a restart.</span></div>
<div class="line"><a name="l01509"></a><span class="lineno"> 1509</span>&#160;<span class="comment">             */</span></div>
<div class="line"><a name="l01510"></a><span class="lineno"> 1510</span>&#160; </div>
<div class="line"><a name="l01511"></a><span class="lineno"> 1511</span>&#160;            <span class="keywordflow">if</span> (wcsncmp(&amp;(pCaptDevmode-&gt;dmDeviceName[0]),</div>
<div class="line"><a name="l01512"></a><span class="lineno"> 1512</span>&#160;                        &amp;(physdevinfo-&gt;<a class="code" href="a02601.html#a19bee6963f84c40169f417b39bc46059">pCurrentDevmode</a>-&gt;dmDeviceName[0]),</div>
<div class="line"><a name="l01513"></a><span class="lineno"> 1513</span>&#160;                        32)) {</div>
<div class="line"><a name="l01514"></a><span class="lineno"> 1514</span>&#160; </div>
<div class="line"><a name="l01515"></a><span class="lineno"> 1515</span>&#160;                status = DISP_CHANGE_RESTART;</div>
<div class="line"><a name="l01516"></a><span class="lineno"> 1516</span>&#160; </div>
<div class="line"><a name="l01517"></a><span class="lineno"> 1517</span>&#160;            }</div>
<div class="line"><a name="l01518"></a><span class="lineno"> 1518</span>&#160; </div>
<div class="line"><a name="l01519"></a><span class="lineno"> 1519</span>&#160;            <span class="comment">/*</span></div>
<div class="line"><a name="l01520"></a><span class="lineno"> 1520</span>&#160;<span class="comment">             * BUGBUG</span></div>
<div class="line"><a name="l01521"></a><span class="lineno"> 1521</span>&#160;<span class="comment">             * Check the registry key that allows color depths on the fly.</span></div>
<div class="line"><a name="l01522"></a><span class="lineno"> 1522</span>&#160;<span class="comment">             */</span></div>
<div class="line"><a name="l01523"></a><span class="lineno"> 1523</span>&#160; </div>
<div class="line"><a name="l01524"></a><span class="lineno"> 1524</span>&#160;        } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l01525"></a><span class="lineno"> 1525</span>&#160; </div>
<div class="line"><a name="l01526"></a><span class="lineno"> 1526</span>&#160;            <span class="comment">/*</span></div>
<div class="line"><a name="l01527"></a><span class="lineno"> 1527</span>&#160;<span class="comment">             * We can not change the mode on this device.</span></div>
<div class="line"><a name="l01528"></a><span class="lineno"> 1528</span>&#160;<span class="comment">             */</span></div>
<div class="line"><a name="l01529"></a><span class="lineno"> 1529</span>&#160; </div>
<div class="line"><a name="l01530"></a><span class="lineno"> 1530</span>&#160;            status = DISP_CHANGE_BADPARAM;</div>
<div class="line"><a name="l01531"></a><span class="lineno"> 1531</span>&#160;        }</div>
<div class="line"><a name="l01532"></a><span class="lineno"> 1532</span>&#160; </div>
<div class="line"><a name="l01533"></a><span class="lineno"> 1533</span>&#160;        <span class="keywordflow">goto</span> CDS_Exit_Free_Device;</div>
<div class="line"><a name="l01534"></a><span class="lineno"> 1534</span>&#160;    }</div>
<div class="line"><a name="l01535"></a><span class="lineno"> 1535</span>&#160; </div>
<div class="line"><a name="l01536"></a><span class="lineno"> 1536</span>&#160;    <span class="comment">/*</span></div>
<div class="line"><a name="l01537"></a><span class="lineno"> 1537</span>&#160;<span class="comment">     * Lock the PWND, if it is provided</span></div>
<div class="line"><a name="l01538"></a><span class="lineno"> 1538</span>&#160;<span class="comment">     */</span></div>
<div class="line"><a name="l01539"></a><span class="lineno"> 1539</span>&#160; </div>
<div class="line"><a name="l01540"></a><span class="lineno"> 1540</span>&#160;    <span class="keywordflow">if</span> (pwnd) {</div>
<div class="line"><a name="l01541"></a><span class="lineno"> 1541</span>&#160;        <a class="code" href="a00899.html#abfae1dfb48db23dcea4494f7990ad6a6">ThreadLock</a>(pwnd, &amp;tlpwnd);</div>
<div class="line"><a name="l01542"></a><span class="lineno"> 1542</span>&#160;    }</div>
<div class="line"><a name="l01543"></a><span class="lineno"> 1543</span>&#160; </div>
<div class="line"><a name="l01544"></a><span class="lineno"> 1544</span>&#160;    <span class="comment">/*</span></div>
<div class="line"><a name="l01545"></a><span class="lineno"> 1545</span>&#160;<span class="comment">     * We don&#39;t want our mode switch to be posted on the looping thread.</span></div>
<div class="line"><a name="l01546"></a><span class="lineno"> 1546</span>&#160;<span class="comment">     * So let&#39;s loop until the system has settled down and no mode switch</span></div>
<div class="line"><a name="l01547"></a><span class="lineno"> 1547</span>&#160;<span class="comment">     * is currently occuring.</span></div>
<div class="line"><a name="l01548"></a><span class="lineno"> 1548</span>&#160;<span class="comment">     */</span></div>
<div class="line"><a name="l01549"></a><span class="lineno"> 1549</span>&#160; </div>
<div class="line"><a name="l01550"></a><span class="lineno"> 1550</span>&#160;    <span class="keywordflow">while</span> (<a class="code" href="a00689.html#adaa7e2f08c4f1fb0e8161e249d62f909">idSwitcher</a> != <a class="code" href="a00689.html#a18707a2877a1444421decffc9e2efb3e">NOSWITCHER</a>) {</div>
<div class="line"><a name="l01551"></a><span class="lineno"> 1551</span>&#160;        <a class="code" href="a00899.html#ac2181d07596893ed44d18aa267ce4d23">LeaveCrit</a>();</div>
<div class="line"><a name="l01552"></a><span class="lineno"> 1552</span>&#160;        <a class="code" href="a00608.html#a6c96372198152be76c02728ab8e49dce">UserSleep</a>(1);</div>
<div class="line"><a name="l01553"></a><span class="lineno"> 1553</span>&#160;        <a class="code" href="a00899.html#ae451a2dc8791c420d7c956a63adc33ba">EnterCrit</a>();</div>
<div class="line"><a name="l01554"></a><span class="lineno"> 1554</span>&#160;    }</div>
<div class="line"><a name="l01555"></a><span class="lineno"> 1555</span>&#160; </div>
<div class="line"><a name="l01556"></a><span class="lineno"> 1556</span>&#160;    <span class="comment">/*</span></div>
<div class="line"><a name="l01557"></a><span class="lineno"> 1557</span>&#160;<span class="comment">     * If there is a window, we want to check the state of the window.</span></div>
<div class="line"><a name="l01558"></a><span class="lineno"> 1558</span>&#160;<span class="comment">     * For most calls, we want to ensure we are in windowed mode.</span></div>
<div class="line"><a name="l01559"></a><span class="lineno"> 1559</span>&#160;<span class="comment">     * However, for Console, we want to make sure we are in fullscreen mode.</span></div>
<div class="line"><a name="l01560"></a><span class="lineno"> 1560</span>&#160;<span class="comment">     * So differentiate between the two.  We will check if the TEXTMODE</span></div>
<div class="line"><a name="l01561"></a><span class="lineno"> 1561</span>&#160;<span class="comment">     * flag is passed in the DEVMODE.</span></div>
<div class="line"><a name="l01562"></a><span class="lineno"> 1562</span>&#160;<span class="comment">     */</span></div>
<div class="line"><a name="l01563"></a><span class="lineno"> 1563</span>&#160; </div>
<div class="line"><a name="l01564"></a><span class="lineno"> 1564</span>&#160;    <span class="keywordflow">if</span> (pwnd) {</div>
<div class="line"><a name="l01565"></a><span class="lineno"> 1565</span>&#160; </div>
<div class="line"><a name="l01566"></a><span class="lineno"> 1566</span>&#160;        <span class="keywordflow">if</span> (pCaptDevmode-&gt;dmDisplayFlags == DMDISPLAYFLAGS_TEXTMODE) {</div>
<div class="line"><a name="l01567"></a><span class="lineno"> 1567</span>&#160; </div>
<div class="line"><a name="l01568"></a><span class="lineno"> 1568</span>&#160;            <span class="keywordflow">if</span> (pwnd-&gt;bFullScreen != FULLSCREEN) {</div>
<div class="line"><a name="l01569"></a><span class="lineno"> 1569</span>&#160; </div>
<div class="line"><a name="l01570"></a><span class="lineno"> 1570</span>&#160;                <a class="code" href="a00851.html#ae82e6ab5253cf5a51f5e270f6b83ccb7">xxxShowWindow</a>(pwnd, MAKELONG(SW_SHOWMINIMIZED, <a class="code" href="a03257.html#a3f749009e2dddfbcdd946cdc60859d5d">gfAnimate</a>));</div>
<div class="line"><a name="l01571"></a><span class="lineno"> 1571</span>&#160;                <a class="code" href="a00896.html#aa1a70248d072f47e9072b716708a6918">xxxUpdateWindow</a>(pwnd);</div>
<div class="line"><a name="l01572"></a><span class="lineno"> 1572</span>&#160; </div>
<div class="line"><a name="l01573"></a><span class="lineno"> 1573</span>&#160;            }</div>
<div class="line"><a name="l01574"></a><span class="lineno"> 1574</span>&#160; </div>
<div class="line"><a name="l01575"></a><span class="lineno"> 1575</span>&#160;            <a class="code" href="a00689.html#aff6a0461c096c5f13235d6537112c084">xxxMakeWindowForegroundWithState</a>(pwnd, FULLSCREEN);</div>
<div class="line"><a name="l01576"></a><span class="lineno"> 1576</span>&#160; </div>
<div class="line"><a name="l01577"></a><span class="lineno"> 1577</span>&#160;            <span class="keywordflow">if</span> ((<a class="code" href="a00689.html#adaa7e2f08c4f1fb0e8161e249d62f909">idSwitcher</a> != <a class="code" href="a00689.html#a18707a2877a1444421decffc9e2efb3e">NOSWITCHER</a>) ||</div>
<div class="line"><a name="l01578"></a><span class="lineno"> 1578</span>&#160;                (<a class="code" href="a00689.html#a646350d4ca26f09d0d0bcf6f70a12042">gbFullScreen</a> != FULLSCREEN)) {</div>
<div class="line"><a name="l01579"></a><span class="lineno"> 1579</span>&#160; </div>
<div class="line"><a name="l01580"></a><span class="lineno"> 1580</span>&#160;                TRACE_INIT((<span class="stringliteral">&quot;ChangeDisplaySettings: Can not switch into fullscreen\n&quot;</span>));</div>
<div class="line"><a name="l01581"></a><span class="lineno"> 1581</span>&#160;                status = DISP_CHANGE_FAILED;</div>
<div class="line"><a name="l01582"></a><span class="lineno"> 1582</span>&#160;                <span class="keywordflow">goto</span> CDS_Exit;</div>
<div class="line"><a name="l01583"></a><span class="lineno"> 1583</span>&#160;            }</div>
<div class="line"><a name="l01584"></a><span class="lineno"> 1584</span>&#160; </div>
<div class="line"><a name="l01585"></a><span class="lineno"> 1585</span>&#160;        } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l01586"></a><span class="lineno"> 1586</span>&#160; </div>
<div class="line"><a name="l01587"></a><span class="lineno"> 1587</span>&#160;            <span class="comment">/*</span></div>
<div class="line"><a name="l01588"></a><span class="lineno"> 1588</span>&#160;<span class="comment">             * For the console windows, we want to call with WINDOWED</span></div>
<div class="line"><a name="l01589"></a><span class="lineno"> 1589</span>&#160;<span class="comment">             * We base this check on whether gdi is enabled or not.</span></div>
<div class="line"><a name="l01590"></a><span class="lineno"> 1590</span>&#160;<span class="comment">             */</span></div>
<div class="line"><a name="l01591"></a><span class="lineno"> 1591</span>&#160; </div>
<div class="line"><a name="l01592"></a><span class="lineno"> 1592</span>&#160;            <span class="keywordflow">if</span> (<a class="code" href="a00689.html#a387a17388d6fb6bc7ecd24bc5826427e">fGdiEnabled</a> == FALSE) {</div>
<div class="line"><a name="l01593"></a><span class="lineno"> 1593</span>&#160;                <a class="code" href="a00689.html#aff6a0461c096c5f13235d6537112c084">xxxMakeWindowForegroundWithState</a>(pwnd, WINDOWED);</div>
<div class="line"><a name="l01594"></a><span class="lineno"> 1594</span>&#160;            }</div>
<div class="line"><a name="l01595"></a><span class="lineno"> 1595</span>&#160; </div>
<div class="line"><a name="l01596"></a><span class="lineno"> 1596</span>&#160;            <span class="keywordflow">if</span> ((<a class="code" href="a00689.html#adaa7e2f08c4f1fb0e8161e249d62f909">idSwitcher</a> != <a class="code" href="a00689.html#a18707a2877a1444421decffc9e2efb3e">NOSWITCHER</a>) ||</div>
<div class="line"><a name="l01597"></a><span class="lineno"> 1597</span>&#160;                (<a class="code" href="a00689.html#a646350d4ca26f09d0d0bcf6f70a12042">gbFullScreen</a> != GDIFULLSCREEN)) {</div>
<div class="line"><a name="l01598"></a><span class="lineno"> 1598</span>&#160; </div>
<div class="line"><a name="l01599"></a><span class="lineno"> 1599</span>&#160;                TRACE_INIT((<span class="stringliteral">&quot;ChangeDisplaySettings: Can not switch out of fullscreen\n&quot;</span>));</div>
<div class="line"><a name="l01600"></a><span class="lineno"> 1600</span>&#160;                status = DISP_CHANGE_FAILED;</div>
<div class="line"><a name="l01601"></a><span class="lineno"> 1601</span>&#160;                <span class="keywordflow">goto</span> CDS_Exit;</div>
<div class="line"><a name="l01602"></a><span class="lineno"> 1602</span>&#160;            }</div>
<div class="line"><a name="l01603"></a><span class="lineno"> 1603</span>&#160;        }</div>
<div class="line"><a name="l01604"></a><span class="lineno"> 1604</span>&#160;    }</div>
<div class="line"><a name="l01605"></a><span class="lineno"> 1605</span>&#160; </div>
<div class="line"><a name="l01606"></a><span class="lineno"> 1606</span>&#160;    <span class="comment">/*</span></div>
<div class="line"><a name="l01607"></a><span class="lineno"> 1607</span>&#160;<span class="comment">     * Check for console fullscreen.</span></div>
<div class="line"><a name="l01608"></a><span class="lineno"> 1608</span>&#160;<span class="comment">     */</span></div>
<div class="line"><a name="l01609"></a><span class="lineno"> 1609</span>&#160; </div>
<div class="line"><a name="l01610"></a><span class="lineno"> 1610</span>&#160;    <span class="keywordflow">if</span> (pwnd &amp;&amp;</div>
<div class="line"><a name="l01611"></a><span class="lineno"> 1611</span>&#160;        (pCaptDevmode-&gt;dmDisplayFlags == DMDISPLAYFLAGS_TEXTMODE) &amp;&amp;</div>
<div class="line"><a name="l01612"></a><span class="lineno"> 1612</span>&#160;        (dwFlags &amp; CDS_FULLSCREEN)) {</div>
<div class="line"><a name="l01613"></a><span class="lineno"> 1613</span>&#160; </div>
<div class="line"><a name="l01614"></a><span class="lineno"> 1614</span>&#160;<span class="preprocessor">#if 0</span></div>
<div class="line"><a name="l01615"></a><span class="lineno"> 1615</span>&#160;        UNICODE_STRING vgaString;</div>
<div class="line"><a name="l01616"></a><span class="lineno"> 1616</span>&#160; </div>
<div class="line"><a name="l01617"></a><span class="lineno"> 1617</span>&#160;        <span class="comment">/*</span></div>
<div class="line"><a name="l01618"></a><span class="lineno"> 1618</span>&#160;<span class="comment">         * &quot;VGACOMPATIBLE&quot; is a special name that indicates we want to use</span></div>
<div class="line"><a name="l01619"></a><span class="lineno"> 1619</span>&#160;<span class="comment">         * the default VGA device of the machine (for console)</span></div>
<div class="line"><a name="l01620"></a><span class="lineno"> 1620</span>&#160;<span class="comment">         */</span></div>
<div class="line"><a name="l01621"></a><span class="lineno"> 1621</span>&#160;        RtlInitUnicodeString(&amp;vgaString, L<span class="stringliteral">&quot;VGACOMPATIBLE&quot;</span>);</div>
<div class="line"><a name="l01622"></a><span class="lineno"> 1622</span>&#160; </div>
<div class="line"><a name="l01623"></a><span class="lineno"> 1623</span>&#160;        <span class="keywordflow">if</span> (RtlEqualUnicodeString(&amp;strDevice, &amp;vgaString, TRUE)) {</div>
<div class="line"><a name="l01624"></a><span class="lineno"> 1624</span>&#160; </div>
<div class="line"><a name="l01625"></a><span class="lineno"> 1625</span>&#160;            LPDEVMODEW pDevicemode = <a class="code" href="a03257.html#aea20d6528ad57e108c962a4fcb2e91d9">gphysDevInfo</a>[0].<a class="code" href="a02601.html#a1fe37d9234f46b11eab06dbfbafab7e9">devmodeInfo</a>;</div>
<div class="line"><a name="l01626"></a><span class="lineno"> 1626</span>&#160;            VIDEO_MODE VideoMode;</div>
<div class="line"><a name="l01627"></a><span class="lineno"> 1627</span>&#160;            BOOLEAN    modeFound = FALSE;</div>
<div class="line"><a name="l01628"></a><span class="lineno"> 1628</span>&#160;            ULONG      BytesReturned;</div>
<div class="line"><a name="l01629"></a><span class="lineno"> 1629</span>&#160;            NTSTATUS   Status;</div>
<div class="line"><a name="l01630"></a><span class="lineno"> 1630</span>&#160;            ULONG      i;</div>
<div class="line"><a name="l01631"></a><span class="lineno"> 1631</span>&#160; </div>
<div class="line"><a name="l01632"></a><span class="lineno"> 1632</span>&#160;            <span class="comment">/*</span></div>
<div class="line"><a name="l01633"></a><span class="lineno"> 1633</span>&#160;<span class="comment">             * Fullscreen VGA modes require us to call the miniport driver</span></div>
<div class="line"><a name="l01634"></a><span class="lineno"> 1634</span>&#160;<span class="comment">             * directly.</span></div>
<div class="line"><a name="l01635"></a><span class="lineno"> 1635</span>&#160;<span class="comment">             *</span></div>
<div class="line"><a name="l01636"></a><span class="lineno"> 1636</span>&#160;<span class="comment">             * Lets check the VGA Device handle, which is in the first</span></div>
<div class="line"><a name="l01637"></a><span class="lineno"> 1637</span>&#160;<span class="comment">             * entry.</span></div>
<div class="line"><a name="l01638"></a><span class="lineno"> 1638</span>&#160;<span class="comment">             */</span></div>
<div class="line"><a name="l01639"></a><span class="lineno"> 1639</span>&#160; </div>
<div class="line"><a name="l01640"></a><span class="lineno"> 1640</span>&#160;            <span class="keywordflow">if</span> (<a class="code" href="a03257.html#aea20d6528ad57e108c962a4fcb2e91d9">gphysDevInfo</a>[0].pDeviceHandle == NULL) {</div>
<div class="line"><a name="l01641"></a><span class="lineno"> 1641</span>&#160; </div>
<div class="line"><a name="l01642"></a><span class="lineno"> 1642</span>&#160;                status = DISP_CHANGE_BADPARAM;</div>
<div class="line"><a name="l01643"></a><span class="lineno"> 1643</span>&#160; </div>
<div class="line"><a name="l01644"></a><span class="lineno"> 1644</span>&#160;            } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l01645"></a><span class="lineno"> 1645</span>&#160; </div>
<div class="line"><a name="l01646"></a><span class="lineno"> 1646</span>&#160;                VideoMode.RequestedMode = (ULONG) pCaptDevmode-&gt;dmOrientation;</div>
<div class="line"><a name="l01647"></a><span class="lineno"> 1647</span>&#160; </div>
<div class="line"><a name="l01648"></a><span class="lineno"> 1648</span>&#160;                <span class="comment">/*</span></div>
<div class="line"><a name="l01649"></a><span class="lineno"> 1649</span>&#160;<span class="comment">                 * We have the mode number.</span></div>
<div class="line"><a name="l01650"></a><span class="lineno"> 1650</span>&#160;<span class="comment">                 * Call the driver to set the mode</span></div>
<div class="line"><a name="l01651"></a><span class="lineno"> 1651</span>&#160;<span class="comment">                 */</span></div>
<div class="line"><a name="l01652"></a><span class="lineno"> 1652</span>&#160;                Status = GreDeviceIoControl(</div>
<div class="line"><a name="l01653"></a><span class="lineno"> 1653</span>&#160;                        <a class="code" href="a03257.html#aea20d6528ad57e108c962a4fcb2e91d9">gphysDevInfo</a>[0].pDeviceHandle,</div>
<div class="line"><a name="l01654"></a><span class="lineno"> 1654</span>&#160;                        IOCTL_VIDEO_SET_CURRENT_MODE,</div>
<div class="line"><a name="l01655"></a><span class="lineno"> 1655</span>&#160;                        &amp;VideoMode,</div>
<div class="line"><a name="l01656"></a><span class="lineno"> 1656</span>&#160;                        <span class="keyword">sizeof</span>(VideoMode),</div>
<div class="line"><a name="l01657"></a><span class="lineno"> 1657</span>&#160;                        NULL,</div>
<div class="line"><a name="l01658"></a><span class="lineno"> 1658</span>&#160;                        0,</div>
<div class="line"><a name="l01659"></a><span class="lineno"> 1659</span>&#160;                        &amp;BytesReturned);</div>
<div class="line"><a name="l01660"></a><span class="lineno"> 1660</span>&#160; </div>
<div class="line"><a name="l01661"></a><span class="lineno"> 1661</span>&#160;                <span class="keywordflow">if</span> (NT_SUCCESS(Status)) {</div>
<div class="line"><a name="l01662"></a><span class="lineno"> 1662</span>&#160; </div>
<div class="line"><a name="l01663"></a><span class="lineno"> 1663</span>&#160;                    <span class="comment">/*</span></div>
<div class="line"><a name="l01664"></a><span class="lineno"> 1664</span>&#160;<span class="comment">                     * We also map the memory so we can use it to</span></div>
<div class="line"><a name="l01665"></a><span class="lineno"> 1665</span>&#160;<span class="comment">                     * process string commands from the console</span></div>
<div class="line"><a name="l01666"></a><span class="lineno"> 1666</span>&#160;<span class="comment">                     */</span></div>
<div class="line"><a name="l01667"></a><span class="lineno"> 1667</span>&#160;                    VIDEO_MEMORY             FrameBufferMap;</div>
<div class="line"><a name="l01668"></a><span class="lineno"> 1668</span>&#160;                    VIDEO_MEMORY_INFORMATION FrameBufferInfo;</div>
<div class="line"><a name="l01669"></a><span class="lineno"> 1669</span>&#160; </div>
<div class="line"><a name="l01670"></a><span class="lineno"> 1670</span>&#160;                    FrameBufferMap.RequestedVirtualAddress = NULL;</div>
<div class="line"><a name="l01671"></a><span class="lineno"> 1671</span>&#160; </div>
<div class="line"><a name="l01672"></a><span class="lineno"> 1672</span>&#160;                    Status = GreDeviceIoControl(</div>
<div class="line"><a name="l01673"></a><span class="lineno"> 1673</span>&#160;                            <a class="code" href="a03257.html#aea20d6528ad57e108c962a4fcb2e91d9">gphysDevInfo</a>[0].pDeviceHandle,</div>
<div class="line"><a name="l01674"></a><span class="lineno"> 1674</span>&#160;                            IOCTL_VIDEO_MAP_VIDEO_MEMORY,</div>
<div class="line"><a name="l01675"></a><span class="lineno"> 1675</span>&#160;                            &amp;FrameBufferMap,</div>
<div class="line"><a name="l01676"></a><span class="lineno"> 1676</span>&#160;                            <span class="keyword">sizeof</span>(FrameBufferMap),</div>
<div class="line"><a name="l01677"></a><span class="lineno"> 1677</span>&#160;                            &amp;FrameBufferInfo,</div>
<div class="line"><a name="l01678"></a><span class="lineno"> 1678</span>&#160;                            <span class="keyword">sizeof</span>(FrameBufferInfo),</div>
<div class="line"><a name="l01679"></a><span class="lineno"> 1679</span>&#160;                            &amp;BytesReturned);</div>
<div class="line"><a name="l01680"></a><span class="lineno"> 1680</span>&#160; </div>
<div class="line"><a name="l01681"></a><span class="lineno"> 1681</span>&#160;                    <span class="keywordflow">if</span> (NT_SUCCESS(Status)) {</div>
<div class="line"><a name="l01682"></a><span class="lineno"> 1682</span>&#160; </div>
<div class="line"><a name="l01683"></a><span class="lineno"> 1683</span>&#160;                        <span class="comment">/*</span></div>
<div class="line"><a name="l01684"></a><span class="lineno"> 1684</span>&#160;<span class="comment">                         * get address of frame buffer</span></div>
<div class="line"><a name="l01685"></a><span class="lineno"> 1685</span>&#160;<span class="comment">                         */</span></div>
<div class="line"><a name="l01686"></a><span class="lineno"> 1686</span>&#160;                        <a class="code" href="a03257.html#a786cd01671f99939368eaa4f602f2410">gpFullscreenFrameBufPtr</a> = (PUCHAR) FrameBufferInfo.FrameBufferBase;</div>
<div class="line"><a name="l01687"></a><span class="lineno"> 1687</span>&#160; </div>
<div class="line"><a name="l01688"></a><span class="lineno"> 1688</span>&#160;                    } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l01689"></a><span class="lineno"> 1689</span>&#160; </div>
<div class="line"><a name="l01690"></a><span class="lineno"> 1690</span>&#160;                        <a class="code" href="a00371.html#a01c4659626880ba56745765a3580a36b">RIPMSG0</a>(<a class="code" href="a00371.html#afa5f32de88404289ec03cd2c0e61e94f">RIP_ERROR</a>, <span class="stringliteral">&quot;ChangeDisplaySettings: memory mapping failed\n&quot;</span>);</div>
<div class="line"><a name="l01691"></a><span class="lineno"> 1691</span>&#160;                        status = DISP_CHANGE_FAILED;</div>
<div class="line"><a name="l01692"></a><span class="lineno"> 1692</span>&#160;                    }</div>
<div class="line"><a name="l01693"></a><span class="lineno"> 1693</span>&#160; </div>
<div class="line"><a name="l01694"></a><span class="lineno"> 1694</span>&#160;                } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l01695"></a><span class="lineno"> 1695</span>&#160; </div>
<div class="line"><a name="l01696"></a><span class="lineno"> 1696</span>&#160;                    <a class="code" href="a00371.html#a01c4659626880ba56745765a3580a36b">RIPMSG0</a>(<a class="code" href="a00371.html#afa5f32de88404289ec03cd2c0e61e94f">RIP_ERROR</a>, <span class="stringliteral">&quot;ChangeDisplaySettings: fullscreen MODESET failed\n&quot;</span>);</div>
<div class="line"><a name="l01697"></a><span class="lineno"> 1697</span>&#160;                    status = DISP_CHANGE_FAILED;</div>
<div class="line"><a name="l01698"></a><span class="lineno"> 1698</span>&#160;                }</div>
<div class="line"><a name="l01699"></a><span class="lineno"> 1699</span>&#160; </div>
<div class="line"><a name="l01700"></a><span class="lineno"> 1700</span>&#160;            }</div>
<div class="line"><a name="l01701"></a><span class="lineno"> 1701</span>&#160;        }</div>
<div class="line"><a name="l01702"></a><span class="lineno"> 1702</span>&#160; </div>
<div class="line"><a name="l01703"></a><span class="lineno"> 1703</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l01704"></a><span class="lineno"> 1704</span>&#160; </div>
<div class="line"><a name="l01705"></a><span class="lineno"> 1705</span>&#160;    } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l01706"></a><span class="lineno"> 1706</span>&#160; </div>
<div class="line"><a name="l01707"></a><span class="lineno"> 1707</span>&#160;        <span class="comment">/*</span></div>
<div class="line"><a name="l01708"></a><span class="lineno"> 1708</span>&#160;<span class="comment">         * For now, don&#39;t allow dynamic-resolution changes to occur</span></div>
<div class="line"><a name="l01709"></a><span class="lineno"> 1709</span>&#160;<span class="comment">         * when GDI is in fullscreen.  We should almost never hit this</span></div>
<div class="line"><a name="l01710"></a><span class="lineno"> 1710</span>&#160;<span class="comment">         * condition, except for rare stress cases.</span></div>
<div class="line"><a name="l01711"></a><span class="lineno"> 1711</span>&#160;<span class="comment">         */</span></div>
<div class="line"><a name="l01712"></a><span class="lineno"> 1712</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="a03257.html#a2bbf28771d074083b01444a97409814e">gfLockFullScreen</a>) {</div>
<div class="line"><a name="l01713"></a><span class="lineno"> 1713</span>&#160;            status = DISP_CHANGE_FAILED;</div>
<div class="line"><a name="l01714"></a><span class="lineno"> 1714</span>&#160;        }</div>
<div class="line"><a name="l01715"></a><span class="lineno"> 1715</span>&#160; </div>
<div class="line"><a name="l01716"></a><span class="lineno"> 1716</span>&#160;        <span class="comment">/*</span></div>
<div class="line"><a name="l01717"></a><span class="lineno"> 1717</span>&#160;<span class="comment">         * multi-display or mirroring drivers can not change resolution on</span></div>
<div class="line"><a name="l01718"></a><span class="lineno"> 1718</span>&#160;<span class="comment">         * the fly for now since the GreDynamicMode change API does not</span></div>
<div class="line"><a name="l01719"></a><span class="lineno"> 1719</span>&#160;<span class="comment">         * support this yet.</span></div>
<div class="line"><a name="l01720"></a><span class="lineno"> 1720</span>&#160;<span class="comment">         */</span></div>
<div class="line"><a name="l01721"></a><span class="lineno"> 1721</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="a00689.html#a762f2fbf9a0ad4d9a63f7c92adce1297">bMultipleDisplaySystem</a>) {</div>
<div class="line"><a name="l01722"></a><span class="lineno"> 1722</span>&#160;            status = DISP_CHANGE_RESTART;</div>
<div class="line"><a name="l01723"></a><span class="lineno"> 1723</span>&#160;        }</div>
<div class="line"><a name="l01724"></a><span class="lineno"> 1724</span>&#160; </div>
<div class="line"><a name="l01725"></a><span class="lineno"> 1725</span>&#160;        <span class="comment">/*</span></div>
<div class="line"><a name="l01726"></a><span class="lineno"> 1726</span>&#160;<span class="comment">         * Dynamically change the screen resolution.  Only do if</span></div>
<div class="line"><a name="l01727"></a><span class="lineno"> 1727</span>&#160;<span class="comment">         * everything up to point succeeded.</span></div>
<div class="line"><a name="l01728"></a><span class="lineno"> 1728</span>&#160;<span class="comment">         */</span></div>
<div class="line"><a name="l01729"></a><span class="lineno"> 1729</span>&#160;        <span class="keywordflow">if</span> (status == DISP_CHANGE_SUCCESSFUL) {</div>
<div class="line"><a name="l01730"></a><span class="lineno"> 1730</span>&#160; </div>
<div class="line"><a name="l01731"></a><span class="lineno"> 1731</span>&#160;            <a class="code" href="a02801.html">PDESKTOP</a> pDesktop = pdesk;</div>
<div class="line"><a name="l01732"></a><span class="lineno"> 1732</span>&#160; </div>
<div class="line"><a name="l01733"></a><span class="lineno"> 1733</span>&#160;            <span class="keywordflow">if</span> (bCurrentDevice) {</div>
<div class="line"><a name="l01734"></a><span class="lineno"> 1734</span>&#160; </div>
<div class="line"><a name="l01735"></a><span class="lineno"> 1735</span>&#160;                <span class="comment">/*</span></div>
<div class="line"><a name="l01736"></a><span class="lineno"> 1736</span>&#160;<span class="comment">                 * BUGBUG we have to do this because PtiCurrent()-&gt;rpdesk</span></div>
<div class="line"><a name="l01737"></a><span class="lineno"> 1737</span>&#160;<span class="comment">                 * is the desktop with which the thread is associated, not</span></div>
<div class="line"><a name="l01738"></a><span class="lineno"> 1738</span>&#160;<span class="comment">                 * necessarily the desktop to which we are switching !</span></div>
<div class="line"><a name="l01739"></a><span class="lineno"> 1739</span>&#160;<span class="comment">                 *</span></div>
<div class="line"><a name="l01740"></a><span class="lineno"> 1740</span>&#160;<span class="comment">                 * It&#39;s acutally kind of bogus to fall back on PtiCurrent.</span></div>
<div class="line"><a name="l01741"></a><span class="lineno"> 1741</span>&#160;<span class="comment">                 * It assumes apps don&#39;t deal with multiple desktops !!!</span></div>
<div class="line"><a name="l01742"></a><span class="lineno"> 1742</span>&#160;<span class="comment">                 */</span></div>
<div class="line"><a name="l01743"></a><span class="lineno"> 1743</span>&#160; </div>
<div class="line"><a name="l01744"></a><span class="lineno"> 1744</span>&#160;                <span class="keywordflow">if</span> (!pDesktop)</div>
<div class="line"><a name="l01745"></a><span class="lineno"> 1745</span>&#160;                    pDesktop = <a class="code" href="a00257.html#a8315d2c807ba18ba9e528c40614b6173">PtiCurrent</a>()-&gt;<a class="code" href="a02889.html#abb1184e0c5805b5ad89b79dcc2bd17c8">rpdesk</a>;</div>
<div class="line"><a name="l01746"></a><span class="lineno"> 1746</span>&#160; </div>
<div class="line"><a name="l01747"></a><span class="lineno"> 1747</span>&#160;                TRACE_SWITCH((<span class="stringliteral">&quot;\n DESKTOP is %08lx \n&quot;</span>, pDesktop));</div>
<div class="line"><a name="l01748"></a><span class="lineno"> 1748</span>&#160; </div>
<div class="line"><a name="l01749"></a><span class="lineno"> 1749</span>&#160;                <a class="code" href="a00371.html#a162a73e20dfabca084a3ebb4581631a8">UserAssert</a>(bExclusiveDevice == FALSE);</div>
<div class="line"><a name="l01750"></a><span class="lineno"> 1750</span>&#160; </div>
<div class="line"><a name="l01751"></a><span class="lineno"> 1751</span>&#160;                <a class="code" href="a00371.html#a162a73e20dfabca084a3ebb4581631a8">UserAssert</a>(physdevinfo == pDesktop-&gt;<a class="code" href="a02801.html#a7865078d53afb2719414b44d87f75c5d">pDispInfo</a>-&gt;<a class="code" href="a02605.html#a76af5d5bf5f5037a7ddcd8bb543fd388">pDevInfo</a>);</div>
<div class="line"><a name="l01752"></a><span class="lineno"> 1752</span>&#160; </div>
<div class="line"><a name="l01753"></a><span class="lineno"> 1753</span>&#160;            } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l01754"></a><span class="lineno"> 1754</span>&#160;                <a class="code" href="a00371.html#a162a73e20dfabca084a3ebb4581631a8">UserAssert</a>(bExclusiveDevice == TRUE);</div>
<div class="line"><a name="l01755"></a><span class="lineno"> 1755</span>&#160;            }</div>
<div class="line"><a name="l01756"></a><span class="lineno"> 1756</span>&#160; </div>
<div class="line"><a name="l01757"></a><span class="lineno"> 1757</span>&#160;            <span class="comment">/*</span></div>
<div class="line"><a name="l01758"></a><span class="lineno"> 1758</span>&#160;<span class="comment">             * We only switch modes dynamically for the desktops that share</span></div>
<div class="line"><a name="l01759"></a><span class="lineno"> 1759</span>&#160;<span class="comment">             * the same hdev.</span></div>
<div class="line"><a name="l01760"></a><span class="lineno"> 1760</span>&#160;<span class="comment">             *</span></div>
<div class="line"><a name="l01761"></a><span class="lineno"> 1761</span>&#160;<span class="comment">             * A mode should only be set if it&#39;s a new mode being passed down,</span></div>
<div class="line"><a name="l01762"></a><span class="lineno"> 1762</span>&#160;<span class="comment">             * or if the CDS_RESET flag was specified.  CDS_RESET forces the</span></div>
<div class="line"><a name="l01763"></a><span class="lineno"> 1763</span>&#160;<span class="comment">             * set mode.</span></div>
<div class="line"><a name="l01764"></a><span class="lineno"> 1764</span>&#160;<span class="comment">             */</span></div>
<div class="line"><a name="l01765"></a><span class="lineno"> 1765</span>&#160; </div>
<div class="line"><a name="l01766"></a><span class="lineno"> 1766</span>&#160;            <span class="keywordflow">if</span> ((bCurrentDevice)                                &amp;&amp;</div>
<div class="line"><a name="l01767"></a><span class="lineno"> 1767</span>&#160;                (<a class="code" href="a03257.html#ab597263bdbb3441715804712fcf29e6d">gpDispInfo</a>-&gt;<a class="code" href="a02605.html#a81f6c7e5df9c00e3f33e6e1a94ac75fc">hDev</a> == pDesktop-&gt;<a class="code" href="a02801.html#a7865078d53afb2719414b44d87f75c5d">pDispInfo</a>-&gt;<a class="code" href="a02605.html#a81f6c7e5df9c00e3f33e6e1a94ac75fc">hDev</a>) &amp;&amp;</div>
<div class="line"><a name="l01768"></a><span class="lineno"> 1768</span>&#160;                (  (dwFlags &amp; CDS_RESET)                       ||</div>
<div class="line"><a name="l01769"></a><span class="lineno"> 1769</span>&#160;                   ( (pDesktop) &amp;&amp; (pDesktop-&gt;<a class="code" href="a02801.html#a1c13c2279af7d47e5b6bec7434d77812">bForceModeReset</a> == TRUE)) ||</div>
<div class="line"><a name="l01770"></a><span class="lineno"> 1770</span>&#160;                   (!RtlEqualMemory(pCaptDevmode,</div>
<div class="line"><a name="l01771"></a><span class="lineno"> 1771</span>&#160;                                    physdevinfo-&gt;<a class="code" href="a02601.html#a19bee6963f84c40169f417b39bc46059">pCurrentDevmode</a>,</div>
<div class="line"><a name="l01772"></a><span class="lineno"> 1772</span>&#160;                                    <span class="keyword">sizeof</span>(DEVMODEW))))) {</div>
<div class="line"><a name="l01773"></a><span class="lineno"> 1773</span>&#160; </div>
<div class="line"><a name="l01774"></a><span class="lineno"> 1774</span>&#160;                TRACE_INIT((<span class="stringliteral">&quot;ChangeDisplaySettings - Switching modes - program\n&quot;</span>));</div>
<div class="line"><a name="l01775"></a><span class="lineno"> 1775</span>&#160; </div>
<div class="line"><a name="l01776"></a><span class="lineno"> 1776</span>&#160;                <span class="comment">/*</span></div>
<div class="line"><a name="l01777"></a><span class="lineno"> 1777</span>&#160;<span class="comment">                 * Turn off cursor while mucking with the</span></div>
<div class="line"><a name="l01778"></a><span class="lineno"> 1778</span>&#160;<span class="comment">                 * the resolution changes.</span></div>
<div class="line"><a name="l01779"></a><span class="lineno"> 1779</span>&#160;<span class="comment">                 */</span></div>
<div class="line"><a name="l01780"></a><span class="lineno"> 1780</span>&#160;                GreSetPointer(<a class="code" href="a03257.html#ab597263bdbb3441715804712fcf29e6d">gpDispInfo</a>-&gt;<a class="code" href="a02605.html#a81f6c7e5df9c00e3f33e6e1a94ac75fc">hDev</a>, NULL, 0);</div>
<div class="line"><a name="l01781"></a><span class="lineno"> 1781</span>&#160; </div>
<div class="line"><a name="l01782"></a><span class="lineno"> 1782</span>&#160;                <span class="comment">/*</span></div>
<div class="line"><a name="l01783"></a><span class="lineno"> 1783</span>&#160;<span class="comment">                 * Free the spb&#39;s prior to calling the mode-change.  This</span></div>
<div class="line"><a name="l01784"></a><span class="lineno"> 1784</span>&#160;<span class="comment">                 * will make sure off-screen memory is cleaned up for</span></div>
<div class="line"><a name="l01785"></a><span class="lineno"> 1785</span>&#160;<span class="comment">                 * gdi.</span></div>
<div class="line"><a name="l01786"></a><span class="lineno"> 1786</span>&#160;<span class="comment">                 */</span></div>
<div class="line"><a name="l01787"></a><span class="lineno"> 1787</span>&#160;                <a class="code" href="a00860.html#aa5eba0056961545f418184fa87e15982">FreeAllSpbs</a>(NULL);</div>
<div class="line"><a name="l01788"></a><span class="lineno"> 1788</span>&#160; </div>
<div class="line"><a name="l01789"></a><span class="lineno"> 1789</span>&#160;                <span class="keywordflow">if</span> (GreDynamicModeChange(<a class="code" href="a03257.html#ab597263bdbb3441715804712fcf29e6d">gpDispInfo</a>-&gt;<a class="code" href="a02605.html#a81f6c7e5df9c00e3f33e6e1a94ac75fc">hDev</a>,</div>
<div class="line"><a name="l01790"></a><span class="lineno"> 1790</span>&#160;                                         physdevinfo-&gt;<a class="code" href="a02601.html#a671c14f1e07dff0246711968044db9c4">pDeviceHandle</a>,</div>
<div class="line"><a name="l01791"></a><span class="lineno"> 1791</span>&#160;                                         pCaptDevmode)) {</div>
<div class="line"><a name="l01792"></a><span class="lineno"> 1792</span>&#160; </div>
<div class="line"><a name="l01793"></a><span class="lineno"> 1793</span>&#160;                    <span class="comment">/*</span></div>
<div class="line"><a name="l01794"></a><span class="lineno"> 1794</span>&#160;<span class="comment">                     * Save the current mode of the device.</span></div>
<div class="line"><a name="l01795"></a><span class="lineno"> 1795</span>&#160;<span class="comment">                     *</span></div>
<div class="line"><a name="l01796"></a><span class="lineno"> 1796</span>&#160;<span class="comment">                     * If the user set the mode as CDS_FULLSCREEN, or the mode</span></div>
<div class="line"><a name="l01797"></a><span class="lineno"> 1797</span>&#160;<span class="comment">                     * is being saved on an exclusive device, don&#39;t save it</span></div>
<div class="line"><a name="l01798"></a><span class="lineno"> 1798</span>&#160;<span class="comment">                     * to the desktop.</span></div>
<div class="line"><a name="l01799"></a><span class="lineno"> 1799</span>&#160;<span class="comment">                     */</span></div>
<div class="line"><a name="l01800"></a><span class="lineno"> 1800</span>&#160; </div>
<div class="line"><a name="l01801"></a><span class="lineno"> 1801</span>&#160;                    TRACE_INIT((<span class="stringliteral">&quot;ChangeDisplaySettings - Saving the mode\n&quot;</span>));</div>
<div class="line"><a name="l01802"></a><span class="lineno"> 1802</span>&#160; </div>
<div class="line"><a name="l01803"></a><span class="lineno"> 1803</span>&#160; </div>
<div class="line"><a name="l01804"></a><span class="lineno"> 1804</span>&#160;                    <span class="keywordflow">if</span> ((!(dwFlags &amp; CDS_FULLSCREEN)) &amp;&amp;</div>
<div class="line"><a name="l01805"></a><span class="lineno"> 1805</span>&#160;                        (!bExclusiveDevice)) {</div>
<div class="line"><a name="l01806"></a><span class="lineno"> 1806</span>&#160;                        <a class="code" href="a00665.html#a744babe1f701ee80c5d81250e69c4db5">UserSaveCurrentMode</a>(pDesktop,</div>
<div class="line"><a name="l01807"></a><span class="lineno"> 1807</span>&#160;                                            physdevinfo,</div>
<div class="line"><a name="l01808"></a><span class="lineno"> 1808</span>&#160;                                            pCaptDevmode);</div>
<div class="line"><a name="l01809"></a><span class="lineno"> 1809</span>&#160; </div>
<div class="line"><a name="l01810"></a><span class="lineno"> 1810</span>&#160;                    } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l01811"></a><span class="lineno"> 1811</span>&#160;                        <a class="code" href="a00665.html#a744babe1f701ee80c5d81250e69c4db5">UserSaveCurrentMode</a>(NULL,</div>
<div class="line"><a name="l01812"></a><span class="lineno"> 1812</span>&#160;                                            physdevinfo,</div>
<div class="line"><a name="l01813"></a><span class="lineno"> 1813</span>&#160;                                            pCaptDevmode);</div>
<div class="line"><a name="l01814"></a><span class="lineno"> 1814</span>&#160;                    }</div>
<div class="line"><a name="l01815"></a><span class="lineno"> 1815</span>&#160; </div>
<div class="line"><a name="l01816"></a><span class="lineno"> 1816</span>&#160;                    <span class="comment">/*</span></div>
<div class="line"><a name="l01817"></a><span class="lineno"> 1817</span>&#160;<span class="comment">                     * For CDS_FULLSCREEN mark the desktop as requiring a</span></div>
<div class="line"><a name="l01818"></a><span class="lineno"> 1818</span>&#160;<span class="comment">                     * recalc next time we switch to it, so we force a mode</span></div>
<div class="line"><a name="l01819"></a><span class="lineno"> 1819</span>&#160;<span class="comment">                     * switch.</span></div>
<div class="line"><a name="l01820"></a><span class="lineno"> 1820</span>&#160;<span class="comment">                     */</span></div>
<div class="line"><a name="l01821"></a><span class="lineno"> 1821</span>&#160; </div>
<div class="line"><a name="l01822"></a><span class="lineno"> 1822</span>&#160;                    <span class="keywordflow">if</span> (pDesktop) {</div>
<div class="line"><a name="l01823"></a><span class="lineno"> 1823</span>&#160;                        <span class="keywordflow">if</span> (dwFlags &amp; CDS_FULLSCREEN) {</div>
<div class="line"><a name="l01824"></a><span class="lineno"> 1824</span>&#160;                            pDesktop-&gt;<a class="code" href="a02801.html#a1c13c2279af7d47e5b6bec7434d77812">bForceModeReset</a> = TRUE;</div>
<div class="line"><a name="l01825"></a><span class="lineno"> 1825</span>&#160;                        } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l01826"></a><span class="lineno"> 1826</span>&#160;                            pDesktop-&gt;<a class="code" href="a02801.html#a1c13c2279af7d47e5b6bec7434d77812">bForceModeReset</a> = FALSE;</div>
<div class="line"><a name="l01827"></a><span class="lineno"> 1827</span>&#160;                        }</div>
<div class="line"><a name="l01828"></a><span class="lineno"> 1828</span>&#160;                    }</div>
<div class="line"><a name="l01829"></a><span class="lineno"> 1829</span>&#160; </div>
<div class="line"><a name="l01830"></a><span class="lineno"> 1830</span>&#160;                    <a class="code" href="a00689.html#ac54f401520871421830eeed1d34dd321">ResetDisplayDevice</a>(pDesktop, <a class="code" href="a03257.html#ab597263bdbb3441715804712fcf29e6d">gpDispInfo</a>, dwFlags);</div>
<div class="line"><a name="l01831"></a><span class="lineno"> 1831</span>&#160; </div>
<div class="line"><a name="l01832"></a><span class="lineno"> 1832</span>&#160;                } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l01833"></a><span class="lineno"> 1833</span>&#160; </div>
<div class="line"><a name="l01834"></a><span class="lineno"> 1834</span>&#160;                    TRACE_INIT((<span class="stringliteral">&quot;ChangeDisplaySettings: GreDynamicModeChange failed \n&quot;</span>));</div>
<div class="line"><a name="l01835"></a><span class="lineno"> 1835</span>&#160;                    status = DISP_CHANGE_FAILED;</div>
<div class="line"><a name="l01836"></a><span class="lineno"> 1836</span>&#160;                }</div>
<div class="line"><a name="l01837"></a><span class="lineno"> 1837</span>&#160; </div>
<div class="line"><a name="l01838"></a><span class="lineno"> 1838</span>&#160;                <span class="comment">/*</span></div>
<div class="line"><a name="l01839"></a><span class="lineno"> 1839</span>&#160;<span class="comment">                 * Inline so we can specify which desktop this should happen on.</span></div>
<div class="line"><a name="l01840"></a><span class="lineno"> 1840</span>&#160;<span class="comment">                 * xxxRedrawScreen();</span></div>
<div class="line"><a name="l01841"></a><span class="lineno"> 1841</span>&#160;<span class="comment">                 */</span></div>
<div class="line"><a name="l01842"></a><span class="lineno"> 1842</span>&#160;                <span class="keywordflow">if</span> (pDesktop) {</div>
<div class="line"><a name="l01843"></a><span class="lineno"> 1843</span>&#160;                    <a class="code" href="a00896.html#af920796d5612f833ca2179b07a008e69">xxxInternalInvalidate</a>(pDesktop-&gt;<a class="code" href="a02801.html#a76d4881aa4c15330103e83a80e6b5dc7">pDeskInfo</a>-&gt;<a class="code" href="a02609.html#a68937d60a6f49b7a8431db62b38ea721">spwnd</a>,</div>
<div class="line"><a name="l01844"></a><span class="lineno"> 1844</span>&#160;                        MAXREGION, RDW_INVALIDATE | RDW_ERASE | RDW_FRAME | RDW_ALLCHILDREN);</div>
<div class="line"><a name="l01845"></a><span class="lineno"> 1845</span>&#160;                }</div>
<div class="line"><a name="l01846"></a><span class="lineno"> 1846</span>&#160; </div>
<div class="line"><a name="l01847"></a><span class="lineno"> 1847</span>&#160; </div>
<div class="line"><a name="l01848"></a><span class="lineno"> 1848</span>&#160;                <span class="comment">/*</span></div>
<div class="line"><a name="l01849"></a><span class="lineno"> 1849</span>&#160;<span class="comment">                 * Bring back the cursor-shape.</span></div>
<div class="line"><a name="l01850"></a><span class="lineno"> 1850</span>&#160;<span class="comment">                 *</span></div>
<div class="line"><a name="l01851"></a><span class="lineno"> 1851</span>&#160;<span class="comment">#ifdef LATER</span></div>
<div class="line"><a name="l01852"></a><span class="lineno"> 1852</span>&#160;<span class="comment">                 * NOTE: Post 4.0, we should look at changing this and</span></div>
<div class="line"><a name="l01853"></a><span class="lineno"> 1853</span>&#160;<span class="comment">                 *       the GreSetPointer() call above to use the</span></div>
<div class="line"><a name="l01854"></a><span class="lineno"> 1854</span>&#160;<span class="comment">                 *       UpdateCursorImage() calls.  This way we can</span></div>
<div class="line"><a name="l01855"></a><span class="lineno"> 1855</span>&#160;<span class="comment">                 *       assure the global-user-vars are update</span></div>
<div class="line"><a name="l01856"></a><span class="lineno"> 1856</span>&#160;<span class="comment">                 *       correctly, as well as making sure that animated</span></div>
<div class="line"><a name="l01857"></a><span class="lineno"> 1857</span>&#160;<span class="comment">                 *       curor timers are killed through the change.</span></div>
<div class="line"><a name="l01858"></a><span class="lineno"> 1858</span>&#160;<span class="comment">                 *</span></div>
<div class="line"><a name="l01859"></a><span class="lineno"> 1859</span>&#160;<span class="comment">                 *       ChrisWil: 19-Jul-1996</span></div>
<div class="line"><a name="l01860"></a><span class="lineno"> 1860</span>&#160;<span class="comment">                 *</span></div>
<div class="line"><a name="l01861"></a><span class="lineno"> 1861</span>&#160;<span class="comment">#endif</span></div>
<div class="line"><a name="l01862"></a><span class="lineno"> 1862</span>&#160;<span class="comment">                 */</span></div>
<div class="line"><a name="l01863"></a><span class="lineno"> 1863</span>&#160;                <span class="keywordflow">if</span> (<a class="code" href="a03257.html#a106fec4487922d9baa52acc8bfee1c07">gpqCursor</a>                      &amp;&amp;</div>
<div class="line"><a name="l01864"></a><span class="lineno"> 1864</span>&#160;                    <a class="code" href="a03257.html#a106fec4487922d9baa52acc8bfee1c07">gpqCursor</a>-&gt;<a class="code" href="a02869.html#a683294acdd2ae8355c6cfbf49c260374">spcurCurrent</a>        &amp;&amp;</div>
<div class="line"><a name="l01865"></a><span class="lineno"> 1865</span>&#160;                    (<a class="code" href="a03257.html#a106fec4487922d9baa52acc8bfee1c07">gpqCursor</a>-&gt;<a class="code" href="a02869.html#a97845e5f321fb758821ac99bd53840de">iCursorLevel</a> &gt;= 0) &amp;&amp;</div>
<div class="line"><a name="l01866"></a><span class="lineno"> 1866</span>&#160;                    SYSMET(MOUSEPRESENT)) {</div>
<div class="line"><a name="l01867"></a><span class="lineno"> 1867</span>&#160; </div>
<div class="line"><a name="l01868"></a><span class="lineno"> 1868</span>&#160;                    GreSetPointer(<a class="code" href="a03257.html#ab597263bdbb3441715804712fcf29e6d">gpDispInfo</a>-&gt;<a class="code" href="a02605.html#a81f6c7e5df9c00e3f33e6e1a94ac75fc">hDev</a>,</div>
<div class="line"><a name="l01869"></a><span class="lineno"> 1869</span>&#160;                                  (PCURSINFO)&amp;(<a class="code" href="a03257.html#a106fec4487922d9baa52acc8bfee1c07">gpqCursor</a>-&gt;<a class="code" href="a02869.html#a683294acdd2ae8355c6cfbf49c260374">spcurCurrent</a>-&gt;<a class="code" href="a02821.html#af668573586d5576ae8537e6a6e44dcd0">xHotspot</a>),</div>
<div class="line"><a name="l01870"></a><span class="lineno"> 1870</span>&#160;                                  0);</div>
<div class="line"><a name="l01871"></a><span class="lineno"> 1871</span>&#160;                }</div>
<div class="line"><a name="l01872"></a><span class="lineno"> 1872</span>&#160; </div>
<div class="line"><a name="l01873"></a><span class="lineno"> 1873</span>&#160;            } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l01874"></a><span class="lineno"> 1874</span>&#160; </div>
<div class="line"><a name="l01875"></a><span class="lineno"> 1875</span>&#160;                TRACE_INIT((<span class="stringliteral">&quot;ChangeDisplaySettings - Switching modes - NO program\n&quot;</span>));</div>
<div class="line"><a name="l01876"></a><span class="lineno"> 1876</span>&#160;            }</div>
<div class="line"><a name="l01877"></a><span class="lineno"> 1877</span>&#160; </div>
<div class="line"><a name="l01878"></a><span class="lineno"> 1878</span>&#160; </div>
<div class="line"><a name="l01879"></a><span class="lineno"> 1879</span>&#160;        }</div>
<div class="line"><a name="l01880"></a><span class="lineno"> 1880</span>&#160;    }</div>
<div class="line"><a name="l01881"></a><span class="lineno"> 1881</span>&#160; </div>
<div class="line"><a name="l01882"></a><span class="lineno"> 1882</span>&#160;CDS_Exit:</div>
<div class="line"><a name="l01883"></a><span class="lineno"> 1883</span>&#160; </div>
<div class="line"><a name="l01884"></a><span class="lineno"> 1884</span>&#160;    <span class="keywordflow">if</span> (pwnd)</div>
<div class="line"><a name="l01885"></a><span class="lineno"> 1885</span>&#160;        ThreadUnlock(&amp;tlpwnd);</div>
<div class="line"><a name="l01886"></a><span class="lineno"> 1886</span>&#160; </div>
<div class="line"><a name="l01887"></a><span class="lineno"> 1887</span>&#160;CDS_Exit_Free_Device:</div>
<div class="line"><a name="l01888"></a><span class="lineno"> 1888</span>&#160; </div>
<div class="line"><a name="l01889"></a><span class="lineno"> 1889</span>&#160;    <a class="code" href="a00665.html#ae1691bdb53d715053026f55f68e5d3f4">UserFreeDevice</a>(physdevinfo);</div>
<div class="line"><a name="l01890"></a><span class="lineno"> 1890</span>&#160; </div>
<div class="line"><a name="l01891"></a><span class="lineno"> 1891</span>&#160;CDS_Exit_NoUnlock:</div>
<div class="line"><a name="l01892"></a><span class="lineno"> 1892</span>&#160; </div>
<div class="line"><a name="l01893"></a><span class="lineno"> 1893</span>&#160;    <span class="keywordflow">if</span> (!bKernelMode &amp;&amp; strDevice.Buffer)</div>
<div class="line"><a name="l01894"></a><span class="lineno"> 1894</span>&#160;        UserFreePool(strDevice.Buffer);</div>
<div class="line"><a name="l01895"></a><span class="lineno"> 1895</span>&#160; </div>
<div class="line"><a name="l01896"></a><span class="lineno"> 1896</span>&#160;    <span class="keywordflow">if</span> (pCaptDevmode)</div>
<div class="line"><a name="l01897"></a><span class="lineno"> 1897</span>&#160;        UserFreePool(pCaptDevmode);</div>
<div class="line"><a name="l01898"></a><span class="lineno"> 1898</span>&#160; </div>
<div class="line"><a name="l01899"></a><span class="lineno"> 1899</span>&#160;    TRACE_INIT((<span class="stringliteral">&quot;ChangeDisplaySettings - Leaving, Status = %d\n&quot;</span>, status));</div>
<div class="line"><a name="l01900"></a><span class="lineno"> 1900</span>&#160; </div>
<div class="line"><a name="l01901"></a><span class="lineno"> 1901</span>&#160;    <span class="keywordflow">return</span> status;</div>
<div class="line"><a name="l01902"></a><span class="lineno"> 1902</span>&#160;}</div>
</div><!-- fragment -->
<p class="reference">引用了 <a class="el" href="a00899_source.html#l01722">tagDESKTOP::bForceModeReset</a>, <a class="el" href="a00665_source.html#l00046">bMultipleDisplaySystem</a>, <a class="el" href="a00365_source.html#l01553">tagPHYSICAL_DEV_INFO::devmodeInfo</a>, <a class="el" href="a00899_source.html#l03345">DispDriverParamDefault</a>, <a class="el" href="a00899.html#ae451a2dc8791c420d7c956a63adc33ba">EnterCrit()</a>, <a class="el" href="a00689_source.html#l00051">fGdiEnabled</a>, <a class="el" href="a00860_source.html#l01194">FreeAllSpbs()</a>, <a class="el" href="a00689_source.html#l00053">gbFullScreen</a>, <a class="el" href="a03257_source.html#l00019">gfAnimate</a>, <a class="el" href="a03257_source.html#l00077">gfLockFullScreen</a>, <a class="el" href="a03257_source.html#l00125">gpDispInfo</a>, <a class="el" href="a03257_source.html#l00079">gpFullscreenFrameBufPtr</a>, <a class="el" href="a03257_source.html#l00095">gphysDevInfo</a>, <a class="el" href="a03257_source.html#l00135">gpqCursor</a>, <a class="el" href="a03257_source.html#l00187">grpdeskRitInput</a>, <a class="el" href="a00365_source.html#l01576">tagDISPLAYINFO::hDev</a>, <a class="el" href="a00899_source.html#l02185">tagQ::iCursorLevel</a>, <a class="el" href="a00689_source.html#l00049">idSwitcher</a>, <a class="el" href="a00899.html#ac2181d07596893ed44d18aa267ce4d23">LeaveCrit()</a>, <a class="el" href="a00689_source.html#l00047">NOSWITCHER</a>, <a class="el" href="a00365_source.html#l01551">tagPHYSICAL_DEV_INFO::pCurrentDevmode</a>, <a class="el" href="a00899_source.html#l01706">tagDESKTOP::pDeskInfo</a>, <a class="el" href="a00365_source.html#l01546">tagPHYSICAL_DEV_INFO::pDeviceHandle</a>, <a class="el" href="a00365_source.html#l01578">tagDISPLAYINFO::pDevInfo</a>, <a class="el" href="a00899_source.html#l01707">tagDESKTOP::pDispInfo</a>, <a class="el" href="a00665_source.html#l00073">ProbeAndCaptureDeviceName()</a>, <a class="el" href="a00665_source.html#l01977">ProbeAndCaptureDevmode()</a>, <a class="el" href="a00263_source.html#l00526">PtiCurrent()</a>, <a class="el" href="a00689_source.html#l00884">ResetDisplayDevice()</a>, <a class="el" href="a00371_source.html#l00028">RIP_ERROR</a>, <a class="el" href="a00371_source.html#l00029">RIP_WARNING</a>, <a class="el" href="a00371_source.html#l00131">RIPMSG0</a>, <a class="el" href="a00899_source.html#l02288">tagTHREADINFO::rpdesk</a>, <a class="el" href="a00899_source.html#l02184">tagQ::spcurCurrent</a>, <a class="el" href="a00365_source.html#l01603">tagDESKTOPINFO::spwnd</a>, <a class="el" href="a00899.html#abfae1dfb48db23dcea4494f7990ad6a6">ThreadLock()</a>, <a class="el" href="a03257_source.html#l00507">TraceDisplayDriverLoad</a>, <a class="el" href="a00950_source.html#l00117">UserAssert</a>, <a class="el" href="a00665_source.html#l01721">UserFreeDevice()</a>, <a class="el" href="a00665_source.html#l01451">UserGetDeviceFromName()</a>, <a class="el" href="a00665_source.html#l00173">UserSaveCurrentMode()</a>, <a class="el" href="a00665_source.html#l01239">UserSetDisplayDriverParameters()</a>, <a class="el" href="a00608_source.html#l00083">UserSleep()</a>, <a class="el" href="a00899_source.html#l01813">tagCURSOR::xHotspot</a>, <a class="el" href="a00896_source.html#l01257">xxxInternalInvalidate()</a>, <a class="el" href="a00689_source.html#l00140">xxxMakeWindowForegroundWithState()</a>, <a class="el" href="a00851_source.html#l00081">xxxShowWindow()</a> , 以及 <a class="el" href="a00896_source.html#l01371">xxxUpdateWindow()</a>.</p>

<p class="reference">被这些函数引用 <a class="el" href="a00689_source.html#l01060">NtUserChangeDisplaySettings()</a>, <a class="el" href="a00656_source.html#l02349">xxxSwitchDesktop()</a> , 以及 <a class="el" href="a00719_source.html#l01681">xxxUpdatePerUserSystemParameters()</a>.</p>

</div>
</div>
<a id="a855856a20ad946448abdafb9ee059ebd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a855856a20ad946448abdafb9ee059ebd">&#9670;&nbsp;</a></span>UserGetVgaHandle()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">HANDLE UserGetVgaHandle </td>
          <td>(</td>
          <td class="paramtype">VOID&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="a00689_source.html">fullscr.c</a> 第 <a class="el" href="a00689_source.html#l01912">1912</a> 行定义.</p>
<div class="fragment"><div class="line"><a name="l01914"></a><span class="lineno"> 1914</span>&#160;{</div>
<div class="line"><a name="l01915"></a><span class="lineno"> 1915</span>&#160;    <span class="keywordflow">return</span>(<a class="code" href="a03257.html#aea20d6528ad57e108c962a4fcb2e91d9">gphysDevInfo</a>[0].pDeviceHandle);</div>
<div class="line"><a name="l01916"></a><span class="lineno"> 1916</span>&#160;}</div>
</div><!-- fragment -->
<p class="reference">引用了 <a class="el" href="a03257_source.html#l00095">gphysDevInfo</a>.</p>

</div>
</div>
<a id="aff6a0461c096c5f13235d6537112c084"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aff6a0461c096c5f13235d6537112c084">&#9670;&nbsp;</a></span>xxxMakeWindowForegroundWithState()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void xxxMakeWindowForegroundWithState </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="a00365.html#a1a2ef1c363aa0787a8f8a7dde2a34aaf">PWND</a>&#160;</td>
          <td class="paramname"><em>pwnd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">BYTE&#160;</td>
          <td class="paramname"><em>NewState</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="a00689_source.html">fullscr.c</a> 第 <a class="el" href="a00689_source.html#l00140">140</a> 行定义.</p>
<div class="fragment"><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;{</div>
<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;    <a class="code" href="a02581.html">PWND</a> pwndNewFG;</div>
<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;    <a class="code" href="a01881.html">TL</a> tlpwndNewFG;</div>
<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160; </div>
<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;    TRACE_SWITCH((<span class="stringliteral">&quot;Switching: xxxMakeWindowForeground: Enter\n&quot;</span>));</div>
<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;    TRACE_SWITCH((<span class="stringliteral">&quot;\t \t pwnd     = %08lx\n&quot;</span>, pwnd));</div>
<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;    TRACE_SWITCH((<span class="stringliteral">&quot;\t \t NewState = %d\n&quot;</span>, NewState));</div>
<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160; </div>
<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;    <a class="code" href="a00899.html#a70b09c3e2b495630f4205d34be505afb">CheckLock</a>(pwnd);</div>
<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160; </div>
<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;    <span class="comment">/*</span></div>
<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;<span class="comment">     * If we should switch to a specific window save that window</span></div>
<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;<span class="comment">     */</span></div>
<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160; </div>
<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;    <span class="keywordflow">if</span> (pwnd != NULL) {</div>
<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160; </div>
<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;        <span class="keywordflow">if</span> (NewState == GDIFULLSCREEN) {</div>
<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;            Lock(&amp;<a class="code" href="a00689.html#a629f45921c086affcaef1298ff7f8fd4">gspwndShouldBeForeground</a>, pwnd);</div>
<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;        }</div>
<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160; </div>
<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;        <span class="comment">/*</span></div>
<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;<span class="comment">         * Change to the new state</span></div>
<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;<span class="comment">         */</span></div>
<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160; </div>
<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;        pwnd-&gt;<a class="code" href="a02581.html#a77ea21fd35c425c6a9119e1b42812fb0">bFullScreen</a> = NewState;</div>
<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160; </div>
<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;        <span class="keywordflow">if</span> (NewState == FULLSCREEN &amp;&amp;</div>
<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;            (<a class="code" href="a03257.html#a01d6b23c241a057b5e276bc3095a01eb">gpqForeground</a> == NULL ||</div>
<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;             <a class="code" href="a03257.html#a01d6b23c241a057b5e276bc3095a01eb">gpqForeground</a>-&gt;<a class="code" href="a02869.html#a00f55b93fb49e91ab92e90fde747d716">spwndActive</a> != pwnd)) {</div>
<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160; </div>
<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;            pwnd-&gt;<a class="code" href="a02581.html#a77ea21fd35c425c6a9119e1b42812fb0">bFullScreen</a> = FULLSCREENMIN;</div>
<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;        }</div>
<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;    }</div>
<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160; </div>
<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;    <span class="comment">//</span></div>
<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;    <span class="comment">// Since we leave the critical section during the switch, some other</span></div>
<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;    <span class="comment">// thread could come into this routine and request a switch.  The global</span></div>
<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;    <span class="comment">// will be reset, and we will use the loop to perform the next switch.</span></div>
<div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;    <span class="comment">//</span></div>
<div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160; </div>
<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="a00689.html#adaa7e2f08c4f1fb0e8161e249d62f909">idSwitcher</a> != <a class="code" href="a00689.html#a18707a2877a1444421decffc9e2efb3e">NOSWITCHER</a>) {</div>
<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;        <a class="code" href="a00689.html#ab4e036cf2cf3a3162fe3ee05da10c457">fRedoFullScreenSwitch</a> = TRUE;</div>
<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;        TRACE_SWITCH((<span class="stringliteral">&quot;Switching: xxxMakeWindowForeground was posted: Exit\n&quot;</span>));</div>
<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160; </div>
<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;        <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;    }</div>
<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160; </div>
<div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;    <a class="code" href="a00371.html#a162a73e20dfabca084a3ebb4581631a8">UserAssert</a>(!<a class="code" href="a00689.html#ab4e036cf2cf3a3162fe3ee05da10c457">fRedoFullScreenSwitch</a>);</div>
<div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;    <a class="code" href="a00689.html#adaa7e2f08c4f1fb0e8161e249d62f909">idSwitcher</a> = PsGetCurrentThread()-&gt;Cid.UniqueThread;</div>
<div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160; </div>
<div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;    <span class="comment">/*</span></div>
<div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;<span class="comment">     * We loop, switching full screens until all states have stabilized</span></div>
<div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;<span class="comment">     */</span></div>
<div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160; </div>
<div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;    <span class="keywordflow">while</span> (TRUE) {</div>
<div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;        <span class="comment">/*</span></div>
<div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;<span class="comment">         * figure out who should be foreground</span></div>
<div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;<span class="comment">         */</span></div>
<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;        <a class="code" href="a00689.html#ab4e036cf2cf3a3162fe3ee05da10c457">fRedoFullScreenSwitch</a> = FALSE;</div>
<div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160; </div>
<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="a00689.html#a629f45921c086affcaef1298ff7f8fd4">gspwndShouldBeForeground</a> != NULL) {</div>
<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;            pwndNewFG = <a class="code" href="a00689.html#a629f45921c086affcaef1298ff7f8fd4">gspwndShouldBeForeground</a>;</div>
<div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;            Unlock(&amp;<a class="code" href="a00689.html#a629f45921c086affcaef1298ff7f8fd4">gspwndShouldBeForeground</a>);</div>
<div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;        } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;            <span class="keywordflow">if</span> (<a class="code" href="a03257.html#a01d6b23c241a057b5e276bc3095a01eb">gpqForeground</a> != NULL &amp;&amp;</div>
<div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;                <a class="code" href="a03257.html#a01d6b23c241a057b5e276bc3095a01eb">gpqForeground</a>-&gt;<a class="code" href="a02869.html#a00f55b93fb49e91ab92e90fde747d716">spwndActive</a> != NULL) {</div>
<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160; </div>
<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;                pwndNewFG = <a class="code" href="a03257.html#a01d6b23c241a057b5e276bc3095a01eb">gpqForeground</a>-&gt;<a class="code" href="a02869.html#a00f55b93fb49e91ab92e90fde747d716">spwndActive</a>;</div>
<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160; </div>
<div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;                <span class="keywordflow">if</span> (pwndNewFG-&gt;<a class="code" href="a02581.html#a77ea21fd35c425c6a9119e1b42812fb0">bFullScreen</a> == WINDOWED ||</div>
<div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;                    pwndNewFG-&gt;<a class="code" href="a02581.html#a77ea21fd35c425c6a9119e1b42812fb0">bFullScreen</a> == FULLSCREENMIN) {</div>
<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160; </div>
<div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;                    pwndNewFG = PWNDDESKTOP(pwndNewFG);</div>
<div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;                }</div>
<div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;            } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;                <span class="comment">/*</span></div>
<div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;<span class="comment">                 * No active window, switch to current desktop</span></div>
<div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;<span class="comment">                 */</span></div>
<div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;                pwndNewFG = <a class="code" href="a03257.html#a326757fcfe334f2ffd59d64d4645d37a">grpdeskRitInput</a>-&gt;<a class="code" href="a02801.html#a76d4881aa4c15330103e83a80e6b5dc7">pDeskInfo</a>-&gt;<a class="code" href="a02609.html#a68937d60a6f49b7a8431db62b38ea721">spwnd</a>;</div>
<div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;            }</div>
<div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160; </div>
<div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;            <span class="comment">/*</span></div>
<div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;<span class="comment">             * We don&#39;t need to switch if the right window is already foreground</span></div>
<div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;<span class="comment">             */</span></div>
<div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;            <span class="keywordflow">if</span> (pwndNewFG == <a class="code" href="a03257.html#a674cbbaf9c1c4e2ca63923ba1fadfae0">gspwndFullScreen</a>) {</div>
<div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;                <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;            }</div>
<div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;        }</div>
<div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160; </div>
<div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;        <a class="code" href="a00899.html#abfae1dfb48db23dcea4494f7990ad6a6">ThreadLock</a>(pwndNewFG, &amp;tlpwndNewFG);</div>
<div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160; </div>
<div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;        {</div>
<div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;            BYTE bStateNew = pwndNewFG-&gt;<a class="code" href="a02581.html#a77ea21fd35c425c6a9119e1b42812fb0">bFullScreen</a>;</div>
<div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;            <a class="code" href="a01881.html">TL</a> tlpwndOldFG;</div>
<div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;            <a class="code" href="a02581.html">PWND</a> pwndOldFG = <a class="code" href="a03257.html#a674cbbaf9c1c4e2ca63923ba1fadfae0">gspwndFullScreen</a>;</div>
<div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;            BYTE bStateOld = <a class="code" href="a00689.html#a646350d4ca26f09d0d0bcf6f70a12042">gbFullScreen</a>;</div>
<div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160; </div>
<div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;            <a class="code" href="a00899.html#abfae1dfb48db23dcea4494f7990ad6a6">ThreadLock</a>(pwndOldFG, &amp;tlpwndOldFG);</div>
<div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160; </div>
<div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;            Lock(&amp;<a class="code" href="a03257.html#a674cbbaf9c1c4e2ca63923ba1fadfae0">gspwndFullScreen</a>, pwndNewFG);</div>
<div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;            <a class="code" href="a00689.html#a646350d4ca26f09d0d0bcf6f70a12042">gbFullScreen</a> = bStateNew;</div>
<div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160; </div>
<div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;            <a class="code" href="a00371.html#a162a73e20dfabca084a3ebb4581631a8">UserAssert</a>(!HMIsMarkDestroy(<a class="code" href="a03257.html#a674cbbaf9c1c4e2ca63923ba1fadfae0">gspwndFullScreen</a>));</div>
<div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160; </div>
<div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;            <span class="comment">/*</span></div>
<div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;<span class="comment">             * If the old screen was GDIFULLSCREEN and we are switching to</span></div>
<div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;<span class="comment">             * GDIFULLSCREEN then just repaint</span></div>
<div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;<span class="comment">             */</span></div>
<div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;            <span class="keywordflow">if</span> (pwndOldFG != NULL &amp;&amp;</div>
<div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;                bStateOld == GDIFULLSCREEN &amp;&amp;</div>
<div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;                bStateNew == GDIFULLSCREEN) {</div>
<div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160; </div>
<div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;                <a class="code" href="a00896.html#a487301eed51abdcd2b3920954855e848">xxxRedrawWindow</a>(pwndNewFG, NULL, NULL,</div>
<div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;                        RDW_INVALIDATE | RDW_ALLCHILDREN | RDW_ERASE | RDW_ERASENOW);</div>
<div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160; </div>
<div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;                ThreadUnlock(&amp;tlpwndOldFG);</div>
<div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160; </div>
<div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;            } <span class="keywordflow">else</span> {</div>
<div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160; </div>
<div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;                <span class="comment">/*</span></div>
<div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;<span class="comment">                 * tell old &#39;foreground&#39; window it is loosing control of the screen</span></div>
<div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;<span class="comment">                 */</span></div>
<div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;                <span class="keywordflow">if</span> (pwndOldFG != NULL) {</div>
<div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;                    <span class="keywordflow">switch</span> (bStateOld) {</div>
<div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;                    <span class="keywordflow">case</span> FULLSCREEN:</div>
<div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;                        <span class="keywordflow">if</span> (pwndOldFG-&gt;<a class="code" href="a02581.html#a77ea21fd35c425c6a9119e1b42812fb0">bFullScreen</a> == FULLSCREEN) {</div>
<div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;                            pwndOldFG-&gt;<a class="code" href="a02581.html#a77ea21fd35c425c6a9119e1b42812fb0">bFullScreen</a> = FULLSCREENMIN;</div>
<div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;                        }</div>
<div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;                        <a class="code" href="a00842.html#a69cf2e14dcefd941469ad5126e40f79a">xxxSendMessage</a>(pwndOldFG, WM_FULLSCREEN, FALSE, 0);</div>
<div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;                        <a class="code" href="a00617.html#a04bef0d1b4ec903d4b1642ebe5e7e0a0">xxxCapture</a>(GETPTI(pwndOldFG), NULL, FULLSCREEN_CAPTURE);</div>
<div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;                        <a class="code" href="a00689.html#a317b5986c94a0fe6aec5cd38123cf2a3">SetVDMCursorBounds</a>(NULL);</div>
<div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;                        <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160; </div>
<div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;                    <span class="keywordflow">case</span> GDIFULLSCREEN:</div>
<div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;                        <span class="comment">/*</span></div>
<div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;<span class="comment">                         * Lock out other windows from drawing while we are fullscreen</span></div>
<div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;<span class="comment">                         */</span></div>
<div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;                        <a class="code" href="a00860.html#a386f0678a4f1a1261f1cfd672696933a">xxxLockWindowUpdate2</a>(pwndOldFG, TRUE);</div>
<div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;                        <a class="code" href="a03257.html#a2bbf28771d074083b01444a97409814e">gfLockFullScreen</a> = TRUE;</div>
<div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;                        <a class="code" href="a00689.html#a02a2c81b683ba609809c23d59b662273">gptCursorFullScreen</a> = ptCursor;</div>
<div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;                        <a class="code" href="a00371.html#a162a73e20dfabca084a3ebb4581631a8">UserAssert</a>(<a class="code" href="a00689.html#a387a17388d6fb6bc7ecd24bc5826427e">fGdiEnabled</a> == TRUE);</div>
<div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;                        bDisableDisplay(<a class="code" href="a03257.html#ab597263bdbb3441715804712fcf29e6d">gpDispInfo</a>-&gt;<a class="code" href="a02605.html#a81f6c7e5df9c00e3f33e6e1a94ac75fc">hDev</a>);</div>
<div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;                        <a class="code" href="a00689.html#a387a17388d6fb6bc7ecd24bc5826427e">fGdiEnabled</a> = FALSE;</div>
<div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;                        <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160; </div>
<div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;                    <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;                        <a class="code" href="a00371.html#a01c4659626880ba56745765a3580a36b">RIPMSG0</a>(<a class="code" href="a00371.html#afa5f32de88404289ec03cd2c0e61e94f">RIP_ERROR</a>, <span class="stringliteral">&quot;xxxDoFullScreenSwitch: bad screen state&quot;</span>);</div>
<div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;                        <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160; </div>
<div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;                    }</div>
<div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;                }</div>
<div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160; </div>
<div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;                ThreadUnlock(&amp;tlpwndOldFG);</div>
<div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160; </div>
<div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;                <span class="keywordflow">switch</span>(bStateNew) {</div>
<div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;                <span class="keywordflow">case</span> FULLSCREEN:</div>
<div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;                    <a class="code" href="a00617.html#a04bef0d1b4ec903d4b1642ebe5e7e0a0">xxxCapture</a>(GETPTI(pwndNewFG), pwndNewFG, FULLSCREEN_CAPTURE);</div>
<div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;                    <a class="code" href="a00842.html#a69cf2e14dcefd941469ad5126e40f79a">xxxSendMessage</a>(pwndNewFG, WM_FULLSCREEN, TRUE, 0);</div>
<div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;                    <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160; </div>
<div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;                <span class="keywordflow">case</span> GDIFULLSCREEN:</div>
<div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160; </div>
<div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;                    <a class="code" href="a00371.html#a162a73e20dfabca084a3ebb4581631a8">UserAssert</a>(<a class="code" href="a00689.html#a387a17388d6fb6bc7ecd24bc5826427e">fGdiEnabled</a> == FALSE);</div>
<div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;                    vEnableDisplay(<a class="code" href="a03257.html#ab597263bdbb3441715804712fcf29e6d">gpDispInfo</a>-&gt;<a class="code" href="a02605.html#a81f6c7e5df9c00e3f33e6e1a94ac75fc">hDev</a>);</div>
<div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;                    <a class="code" href="a00689.html#a387a17388d6fb6bc7ecd24bc5826427e">fGdiEnabled</a> = TRUE;</div>
<div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160; </div>
<div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;                    <span class="comment">/*</span></div>
<div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;<span class="comment">                     * Return the cursor to it&#39;s old state. Reset the screen saver mouse</span></div>
<div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;<span class="comment">                     * position or it&#39;ll go away by accident.</span></div>
<div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;<span class="comment">                     */</span></div>
<div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;                    <a class="code" href="a03257.html#a106fec4487922d9baa52acc8bfee1c07">gpqCursor</a> = NULL;</div>
<div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;                    <a class="code" href="a00689.html#a5c0ed66b17009c8015022673ff5fcbdc">gptSSCursor</a> = <a class="code" href="a00689.html#a02a2c81b683ba609809c23d59b662273">gptCursorFullScreen</a>;</div>
<div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160;                    <a class="code" href="a00638.html#a3b1dddef2c0ab8276c2cce2733ced1d9">InternalSetCursorPos</a>(<a class="code" href="a00689.html#a02a2c81b683ba609809c23d59b662273">gptCursorFullScreen</a>.x,</div>
<div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;                                         <a class="code" href="a00689.html#a02a2c81b683ba609809c23d59b662273">gptCursorFullScreen</a>.y,</div>
<div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;                                         <a class="code" href="a03257.html#a326757fcfe334f2ffd59d64d4645d37a">grpdeskRitInput</a>);</div>
<div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160; </div>
<div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;                    <span class="keywordflow">if</span> (<a class="code" href="a03257.html#a106fec4487922d9baa52acc8bfee1c07">gpqCursor</a> &amp;&amp; <a class="code" href="a03257.html#a106fec4487922d9baa52acc8bfee1c07">gpqCursor</a>-&gt;<a class="code" href="a02869.html#a683294acdd2ae8355c6cfbf49c260374">spcurCurrent</a> &amp;&amp; SYSMET(MOUSEPRESENT)) {</div>
<div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;                        GreSetPointer(<a class="code" href="a03257.html#ab597263bdbb3441715804712fcf29e6d">gpDispInfo</a>-&gt;<a class="code" href="a02605.html#a81f6c7e5df9c00e3f33e6e1a94ac75fc">hDev</a>, (PCURSINFO)&amp;(<a class="code" href="a03257.html#a106fec4487922d9baa52acc8bfee1c07">gpqCursor</a>-&gt;<a class="code" href="a02869.html#a683294acdd2ae8355c6cfbf49c260374">spcurCurrent</a>-&gt;<a class="code" href="a02821.html#af668573586d5576ae8537e6a6e44dcd0">xHotspot</a>),0);</div>
<div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;                    }</div>
<div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160; </div>
<div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;                    <a class="code" href="a03257.html#a2bbf28771d074083b01444a97409814e">gfLockFullScreen</a> = FALSE;</div>
<div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160;                    <a class="code" href="a00860.html#a386f0678a4f1a1261f1cfd672696933a">xxxLockWindowUpdate2</a>(NULL, TRUE);</div>
<div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160; </div>
<div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;                    <a class="code" href="a00896.html#a487301eed51abdcd2b3920954855e848">xxxRedrawWindow</a>(pwndNewFG, NULL, NULL,</div>
<div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160;                        RDW_INVALIDATE | RDW_ALLCHILDREN | RDW_ERASE | RDW_ERASENOW);</div>
<div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;                    <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160; </div>
<div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;                <span class="keywordflow">default</span>:</div>
<div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;                    <a class="code" href="a00371.html#a01c4659626880ba56745765a3580a36b">RIPMSG0</a>(<a class="code" href="a00371.html#afa5f32de88404289ec03cd2c0e61e94f">RIP_ERROR</a>, <span class="stringliteral">&quot;xxxDoFullScreenSwitch: bad screen state\n&quot;</span>);</div>
<div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;                    <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160;                }</div>
<div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;            }</div>
<div class="line"><a name="l00335"></a><span class="lineno">  335</span>&#160;        }</div>
<div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160; </div>
<div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160;        ThreadUnlock(&amp;tlpwndNewFG);</div>
<div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160; </div>
<div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;        <span class="keywordflow">if</span> (!<a class="code" href="a00689.html#ab4e036cf2cf3a3162fe3ee05da10c457">fRedoFullScreenSwitch</a>) {</div>
<div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;            <span class="keywordflow">break</span>;</div>
<div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;        }</div>
<div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;    }</div>
<div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160; </div>
<div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160;    TRACE_SWITCH((<span class="stringliteral">&quot;Switching: xxxMakeWindowForeground: Exit\n&quot;</span>));</div>
<div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160; </div>
<div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160;    <a class="code" href="a00689.html#adaa7e2f08c4f1fb0e8161e249d62f909">idSwitcher</a> = <a class="code" href="a00689.html#a18707a2877a1444421decffc9e2efb3e">NOSWITCHER</a>;</div>
<div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;    <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160;}</div>
</div><!-- fragment -->
<p class="reference">引用了 <a class="el" href="a00365_source.html#l01419">tagWND::bFullScreen</a>, <a class="el" href="a00899.html#a70b09c3e2b495630f4205d34be505afb">CheckLock()</a>, <a class="el" href="a00689_source.html#l00051">fGdiEnabled</a>, <a class="el" href="a00689_source.html#l00050">fRedoFullScreenSwitch</a>, <a class="el" href="a00689_source.html#l00053">gbFullScreen</a>, <a class="el" href="a03257_source.html#l00077">gfLockFullScreen</a>, <a class="el" href="a03257_source.html#l00125">gpDispInfo</a>, <a class="el" href="a03257_source.html#l00135">gpqCursor</a>, <a class="el" href="a03257_source.html#l00133">gpqForeground</a>, <a class="el" href="a00689_source.html#l00054">gptCursorFullScreen</a>, <a class="el" href="a00875_source.html#l00015">gptSSCursor</a>, <a class="el" href="a03257_source.html#l00187">grpdeskRitInput</a>, <a class="el" href="a03257_source.html#l00076">gspwndFullScreen</a>, <a class="el" href="a00689_source.html#l00052">gspwndShouldBeForeground</a>, <a class="el" href="a00365_source.html#l01576">tagDISPLAYINFO::hDev</a>, <a class="el" href="a00689_source.html#l00049">idSwitcher</a>, <a class="el" href="a00638_source.html#l00110">InternalSetCursorPos()</a>, <a class="el" href="a00689_source.html#l00047">NOSWITCHER</a>, <a class="el" href="a00899_source.html#l01706">tagDESKTOP::pDeskInfo</a>, <a class="el" href="a00371_source.html#l00028">RIP_ERROR</a>, <a class="el" href="a00371_source.html#l00131">RIPMSG0</a>, <a class="el" href="a00638_source.html#l00357">SetVDMCursorBounds()</a>, <a class="el" href="a00899_source.html#l02184">tagQ::spcurCurrent</a>, <a class="el" href="a00365_source.html#l01603">tagDESKTOPINFO::spwnd</a>, <a class="el" href="a00899_source.html#l02168">tagQ::spwndActive</a>, <a class="el" href="a00899.html#abfae1dfb48db23dcea4494f7990ad6a6">ThreadLock()</a>, <a class="el" href="a00950_source.html#l00117">UserAssert</a>, <a class="el" href="a00899_source.html#l01813">tagCURSOR::xHotspot</a>, <a class="el" href="a00617_source.html#l00108">xxxCapture()</a>, <a class="el" href="a00860_source.html#l00758">xxxLockWindowUpdate2()</a>, <a class="el" href="a00896_source.html#l00302">xxxRedrawWindow()</a> , 以及 <a class="el" href="a00842_source.html#l00613">xxxSendMessage()</a>.</p>

<p class="reference">被这些函数引用 <a class="el" href="a00689_source.html#l01097">UserChangeDisplaySettings()</a>, <a class="el" href="a00686_source.html#l00430">xxxActivateThisWindow()</a>, <a class="el" href="a00656_source.html#l00499">xxxDesktopWndProc()</a>, <a class="el" href="a00686_source.html#l01045">xxxSetForegroundWindow2()</a>, <a class="el" href="a00851_source.html#l00081">xxxShowWindow()</a> , 以及 <a class="el" href="a00875_source.html#l00198">xxxSysCommand()</a>.</p>

</div>
</div>
<h2 class="groupheader">变量说明</h2>
<a id="a762f2fbf9a0ad4d9a63f7c92adce1297"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a762f2fbf9a0ad4d9a63f7c92adce1297">&#9670;&nbsp;</a></span>bMultipleDisplaySystem</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">BOOL bMultipleDisplaySystem</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="a00665_source.html">drvsup.c</a> 第 <a class="el" href="a00665_source.html#l00046">46</a> 行定义.</p>

<p class="reference">被这些函数引用 <a class="el" href="a00665_source.html#l02945">InitLoadDriver()</a> , 以及 <a class="el" href="a00689_source.html#l01097">UserChangeDisplaySettings()</a>.</p>

</div>
</div>
<a id="a387a17388d6fb6bc7ecd24bc5826427e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a387a17388d6fb6bc7ecd24bc5826427e">&#9670;&nbsp;</a></span>fGdiEnabled</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">BOOL fGdiEnabled = TRUE</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="a00689_source.html">fullscr.c</a> 第 <a class="el" href="a00689_source.html#l00051">51</a> 行定义.</p>

<p class="reference">被这些函数引用 <a class="el" href="a00689_source.html#l00075">FullScreenCleanup()</a>, <a class="el" href="a00689_source.html#l00375">NtUserFullscreenControl()</a>, <a class="el" href="a00689_source.html#l01097">UserChangeDisplaySettings()</a> , 以及 <a class="el" href="a00689_source.html#l00140">xxxMakeWindowForegroundWithState()</a>.</p>

</div>
</div>
<a id="ab4e036cf2cf3a3162fe3ee05da10c457"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab4e036cf2cf3a3162fe3ee05da10c457">&#9670;&nbsp;</a></span>fRedoFullScreenSwitch</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">BOOL fRedoFullScreenSwitch = FALSE</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="a00689_source.html">fullscr.c</a> 第 <a class="el" href="a00689_source.html#l00050">50</a> 行定义.</p>

<p class="reference">被这些函数引用 <a class="el" href="a00689_source.html#l00075">FullScreenCleanup()</a> , 以及 <a class="el" href="a00689_source.html#l00140">xxxMakeWindowForegroundWithState()</a>.</p>

</div>
</div>
<a id="a646350d4ca26f09d0d0bcf6f70a12042"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a646350d4ca26f09d0d0bcf6f70a12042">&#9670;&nbsp;</a></span>gbFullScreen</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">BYTE gbFullScreen = GDIFULLSCREEN</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="a00689_source.html">fullscr.c</a> 第 <a class="el" href="a00689_source.html#l00053">53</a> 行定义.</p>

<p class="reference">被这些函数引用 <a class="el" href="a00689_source.html#l00075">FullScreenCleanup()</a>, <a class="el" href="a00689_source.html#l01097">UserChangeDisplaySettings()</a> , 以及 <a class="el" href="a00689_source.html#l00140">xxxMakeWindowForegroundWithState()</a>.</p>

</div>
</div>
<a id="a02a2c81b683ba609809c23d59b662273"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a02a2c81b683ba609809c23d59b662273">&#9670;&nbsp;</a></span>gptCursorFullScreen</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">POINT gptCursorFullScreen</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="a00689_source.html">fullscr.c</a> 第 <a class="el" href="a00689_source.html#l00054">54</a> 行定义.</p>

<p class="reference">被这些函数引用 <a class="el" href="a00689_source.html#l00140">xxxMakeWindowForegroundWithState()</a>.</p>

</div>
</div>
<a id="a5c0ed66b17009c8015022673ff5fcbdc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5c0ed66b17009c8015022673ff5fcbdc">&#9670;&nbsp;</a></span>gptSSCursor</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">POINT gptSSCursor</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="a00875_source.html">syscmd.c</a> 第 <a class="el" href="a00875_source.html#l00015">15</a> 行定义.</p>

<p class="reference">被这些函数引用 <a class="el" href="a03290_source.html#l03135">ScreenSaverCheck()</a>, <a class="el" href="a00875_source.html#l00170">StartScreenSaver()</a> , 以及 <a class="el" href="a00689_source.html#l00140">xxxMakeWindowForegroundWithState()</a>.</p>

</div>
</div>
<a id="a629f45921c086affcaef1298ff7f8fd4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a629f45921c086affcaef1298ff7f8fd4">&#9670;&nbsp;</a></span>gspwndShouldBeForeground</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="a00365.html#a1a2ef1c363aa0787a8f8a7dde2a34aaf">PWND</a> gspwndShouldBeForeground = NULL</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="a00689_source.html">fullscr.c</a> 第 <a class="el" href="a00689_source.html#l00052">52</a> 行定义.</p>

<p class="reference">被这些函数引用 <a class="el" href="a00689_source.html#l00140">xxxMakeWindowForegroundWithState()</a>.</p>

</div>
</div>
<a id="adaa7e2f08c4f1fb0e8161e249d62f909"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adaa7e2f08c4f1fb0e8161e249d62f909">&#9670;&nbsp;</a></span>idSwitcher</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">HANDLE idSwitcher = <a class="el" href="a00689.html#a18707a2877a1444421decffc9e2efb3e">NOSWITCHER</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="a00689_source.html">fullscr.c</a> 第 <a class="el" href="a00689_source.html#l00049">49</a> 行定义.</p>

<p class="reference">被这些函数引用 <a class="el" href="a00689_source.html#l00075">FullScreenCleanup()</a>, <a class="el" href="a00689_source.html#l01097">UserChangeDisplaySettings()</a> , 以及 <a class="el" href="a00689_source.html#l00140">xxxMakeWindowForegroundWithState()</a>.</p>

</div>
</div>
<a id="a39514132d83d314ad628930b9ce9e9e1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a39514132d83d314ad628930b9ce9e9e1">&#9670;&nbsp;</a></span>TraceFullscreenSwitch</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">LONG TraceFullscreenSwitch = 0</td>
        </tr>
      </table>
</div><div class="memdoc">

<p class="definition">在文件 <a class="el" href="a00689_source.html">fullscr.c</a> 第 <a class="el" href="a00689_source.html#l00044">44</a> 行定义.</p>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<div class="ttc" id="aa02821_html_af668573586d5576ae8537e6a6e44dcd0"><div class="ttname"><a href="a02821.html#af668573586d5576ae8537e6a6e44dcd0">tagCURSOR::xHotspot</a></div><div class="ttdeci">SHORT xHotspot</div><div class="ttdef"><b>Definition:</b> <a href="a00899_source.html#l01813">userk.h:1813</a></div></div>
<div class="ttc" id="aa03257_html_a674cbbaf9c1c4e2ca63923ba1fadfae0"><div class="ttname"><a href="a03257.html#a674cbbaf9c1c4e2ca63923ba1fadfae0">gspwndFullScreen</a></div><div class="ttdeci">PWND gspwndFullScreen</div><div class="ttdef"><b>Definition:</b> <a href="a03257_source.html#l00076">kernel/globals.c:76</a></div></div>
<div class="ttc" id="aa00842_html_a0035e456f12ef530c2b674cd1f6f8b36"><div class="ttname"><a href="a00842.html#a0035e456f12ef530c2b674cd1f6f8b36">xxxSendNotifyMessage</a></div><div class="ttdeci">BOOL xxxSendNotifyMessage(PWND pwnd, UINT message, DWORD wParam, LONG lParam)</div><div class="ttdef"><b>Definition:</b> <a href="a00842_source.html#l00968">sendmsg.c:968</a></div></div>
<div class="ttc" id="aa00689_html_a629f45921c086affcaef1298ff7f8fd4"><div class="ttname"><a href="a00689.html#a629f45921c086affcaef1298ff7f8fd4">gspwndShouldBeForeground</a></div><div class="ttdeci">PWND gspwndShouldBeForeground</div><div class="ttdef"><b>Definition:</b> <a href="a00689_source.html#l00052">fullscr.c:52</a></div></div>
<div class="ttc" id="aa00371_html_a01c4659626880ba56745765a3580a36b"><div class="ttname"><a href="a00371.html#a01c4659626880ba56745765a3580a36b">RIPMSG0</a></div><div class="ttdeci">#define RIPMSG0(flags, szFmt)</div><div class="ttdef"><b>Definition:</b> <a href="a00371_source.html#l00131">winerrp.h:131</a></div></div>
<div class="ttc" id="aa02605_html_a7ae1e4da76ad52e90f87fe39f43b2c4f"><div class="ttname"><a href="a02605.html#a7ae1e4da76ad52e90f87fe39f43b2c4f">tagDISPLAYINFO::rcPrimaryScreen</a></div><div class="ttdeci">RECT rcPrimaryScreen</div><div class="ttdef"><b>Definition:</b> <a href="a00365_source.html#l01571">user.h:1571</a></div></div>
<div class="ttc" id="aa00638_html_a3dcfb2116a84b0aad0f519d7fdfc4610"><div class="ttname"><a href="a00638.html#a3dcfb2116a84b0aad0f519d7fdfc4610">gfVDMBoundsActive</a></div><div class="ttdeci">BOOL gfVDMBoundsActive</div><div class="ttdef"><b>Definition:</b> <a href="a00638_source.html#l00022">cursor.c:22</a></div></div>
<div class="ttc" id="aa00827_html_a4772e1acd6cc80e53926db81c089b5f0"><div class="ttname"><a href="a00827.html#a4772e1acd6cc80e53926db81c089b5f0">SetDesktopMetrics</a></div><div class="ttdeci">void SetDesktopMetrics()</div><div class="ttdef"><b>Definition:</b> <a href="a00827_source.html#l00144">rare.c:144</a></div></div>
<div class="ttc" id="aa00644_html_a69728f013275d0f4332dded4eb2432a3"><div class="ttname"><a href="a00644.html#a69728f013275d0f4332dded4eb2432a3">InvalidateDCCache</a></div><div class="ttdeci">BOOL InvalidateDCCache(PWND pwndInvalid, DWORD flags)</div><div class="ttdef"><b>Definition:</b> <a href="a00644_source.html#l01644">dc.c:1644</a></div></div>
<div class="ttc" id="aa00896_html_a487301eed51abdcd2b3920954855e848"><div class="ttname"><a href="a00896.html#a487301eed51abdcd2b3920954855e848">xxxRedrawWindow</a></div><div class="ttdeci">BOOL xxxRedrawWindow(PWND pwnd, LPRECT lprcUpdate, HRGN hrgnUpdate, DWORD flags)</div><div class="ttdef"><b>Definition:</b> <a href="a00896_source.html#l00302">update.c:302</a></div></div>
<div class="ttc" id="aa02869_html_a50df387cc5ba51033fb9e767c430f72f"><div class="ttname"><a href="a02869.html#a50df387cc5ba51033fb9e767c430f72f">tagQ::spwndCapture</a></div><div class="ttdeci">PWND spwndCapture</div><div class="ttdef"><b>Definition:</b> <a href="a00899_source.html#l02166">userk.h:2166</a></div></div>
<div class="ttc" id="aa00716_html_aa84edae0e7919ca4f55d198b201a3e5a"><div class="ttname"><a href="a00716.html#aa84edae0e7919ca4f55d198b201a3e5a">SetWindowNCMetrics</a></div><div class="ttdeci">VOID SetWindowNCMetrics(LPNONCLIENTMETRICS lpnc, BOOL fSizeChange, int clNewBorder)</div><div class="ttdef"><b>Definition:</b> <a href="a00716_source.html#l00970">inctlpan.c:970</a></div></div>
<div class="ttc" id="aa00899_html_ae451a2dc8791c420d7c956a63adc33ba"><div class="ttname"><a href="a00899.html#ae451a2dc8791c420d7c956a63adc33ba">EnterCrit</a></div><div class="ttdeci">VOID EnterCrit(VOID)</div></div>
<div class="ttc" id="aa00689_html_aca39fc0e877a9047585888e7790d20ed"><div class="ttname"><a href="a00689.html#aca39fc0e877a9047585888e7790d20ed">UserChangeDisplaySettings</a></div><div class="ttdeci">LONG UserChangeDisplaySettings(IN PUNICODE_STRING pstrDeviceName, IN LPDEVMODEW pDevMode, IN PWND pwnd, IN PDESKTOP pdesk, IN DWORD dwFlags, IN PVOID lParam, IN BOOL bKernelMode)</div><div class="ttdef"><b>Definition:</b> <a href="a00689_source.html#l01097">fullscr.c:1097</a></div></div>
<div class="ttc" id="aa00716_html_a0df9d021542718987a45d43d815c161c"><div class="ttname"><a href="a00716.html#a0df9d021542718987a45d43d815c161c">SetMinMetrics</a></div><div class="ttdeci">VOID SetMinMetrics(LPMINIMIZEDMETRICS lpmin)</div><div class="ttdef"><b>Definition:</b> <a href="a00716_source.html#l01053">inctlpan.c:1053</a></div></div>
<div class="ttc" id="aa00689_html_a02a2c81b683ba609809c23d59b662273"><div class="ttname"><a href="a00689.html#a02a2c81b683ba609809c23d59b662273">gptCursorFullScreen</a></div><div class="ttdeci">POINT gptCursorFullScreen</div><div class="ttdef"><b>Definition:</b> <a href="a00689_source.html#l00054">fullscr.c:54</a></div></div>
<div class="ttc" id="aa02801_html"><div class="ttname"><a href="a02801.html">tagDESKTOP</a></div><div class="ttdef"><b>Definition:</b> <a href="a00899_source.html#l01703">userk.h:1703</a></div></div>
<div class="ttc" id="aa02601_html"><div class="ttname"><a href="a02601.html">tagPHYSICAL_DEV_INFO</a></div><div class="ttdef"><b>Definition:</b> <a href="a00365_source.html#l01543">user.h:1543</a></div></div>
<div class="ttc" id="aa00716_html_a9f946e068766974e04aa7c9e7dea8303"><div class="ttname"><a href="a00716.html#a9f946e068766974e04aa7c9e7dea8303">CreateCaptionStrip</a></div><div class="ttdeci">HBITMAP CreateCaptionStrip(VOID)</div><div class="ttdef"><b>Definition:</b> <a href="a00716_source.html#l00442">inctlpan.c:442</a></div></div>
<div class="ttc" id="aa02801_html_a76d4881aa4c15330103e83a80e6b5dc7"><div class="ttname"><a href="a02801.html#a76d4881aa4c15330103e83a80e6b5dc7">tagDESKTOP::pDeskInfo</a></div><div class="ttdeci">PDESKTOPINFO pDeskInfo</div><div class="ttdef"><b>Definition:</b> <a href="a00899_source.html#l01706">userk.h:1706</a></div></div>
<div class="ttc" id="aa00935_html_a479bbe69c871894f6ca23dfa237481ad"><div class="ttname"><a href="a00935.html#a479bbe69c871894f6ca23dfa237481ad">SetRect</a></div><div class="ttdeci">BOOL APIENTRY SetRect(LPRECT prc, int left, int top, int right, int bottom)</div><div class="ttdef"><b>Definition:</b> <a href="a00935_source.html#l00021">rect.c:21</a></div></div>
<div class="ttc" id="aa02605_html_af0da313e582dc95c2853349086631cd8"><div class="ttname"><a href="a02605.html#af0da313e582dc95c2853349086631cd8">tagDISPLAYINFO::hdcScreen</a></div><div class="ttdeci">HDC hdcScreen</div><div class="ttdef"><b>Definition:</b> <a href="a00365_source.html#l01566">user.h:1566</a></div></div>
<div class="ttc" id="aa03257_html_aea20d6528ad57e108c962a4fcb2e91d9"><div class="ttname"><a href="a03257.html#aea20d6528ad57e108c962a4fcb2e91d9">gphysDevInfo</a></div><div class="ttdeci">PHYSICAL_DEV_INFO gphysDevInfo[]</div><div class="ttdef"><b>Definition:</b> <a href="a03257_source.html#l00095">kernel/globals.c:95</a></div></div>
<div class="ttc" id="aa00665_html_ad1a9b877f3705368d000061536e1b1fb"><div class="ttname"><a href="a00665.html#ad1a9b877f3705368d000061536e1b1fb">ProbeAndCaptureDeviceName</a></div><div class="ttdeci">BOOL ProbeAndCaptureDeviceName(PUNICODE_STRING Destination, PUNICODE_STRING Source)</div><div class="ttdef"><b>Definition:</b> <a href="a00665_source.html#l00073">drvsup.c:73</a></div></div>
<div class="ttc" id="aa03257_html_a15ad49dc77573af8b63b532b82d05cbc"><div class="ttname"><a href="a03257.html#a15ad49dc77573af8b63b532b82d05cbc">ghbmWallpaper</a></div><div class="ttdeci">HBITMAP ghbmWallpaper</div><div class="ttdef"><b>Definition:</b> <a href="a03257_source.html#l00026">kernel/globals.c:26</a></div></div>
<div class="ttc" id="aa02513_html_af5b9904727246903b73027a6008559db"><div class="ttname"><a href="a02513.html#af5b9904727246903b73027a6008559db">tagSERVERINFO::fPaletteDisplay</a></div><div class="ttdeci">BOOL fPaletteDisplay</div><div class="ttdef"><b>Definition:</b> <a href="a00365_source.html#l00993">user.h:993</a></div></div>
<div class="ttc" id="aa00689_html_adaa7e2f08c4f1fb0e8161e249d62f909"><div class="ttname"><a href="a00689.html#adaa7e2f08c4f1fb0e8161e249d62f909">idSwitcher</a></div><div class="ttdeci">HANDLE idSwitcher</div><div class="ttdef"><b>Definition:</b> <a href="a00689_source.html#l00049">fullscr.c:49</a></div></div>
<div class="ttc" id="aa00371_html_a162a73e20dfabca084a3ebb4581631a8"><div class="ttname"><a href="a00371.html#a162a73e20dfabca084a3ebb4581631a8">UserAssert</a></div><div class="ttdeci">#define UserAssert(exp)</div><div class="ttdef"><b>Definition:</b> <a href="a00950_source.html#l00117">usersrv.h:117</a></div></div>
<div class="ttc" id="aa00371_html_afa5f32de88404289ec03cd2c0e61e94f"><div class="ttname"><a href="a00371.html#afa5f32de88404289ec03cd2c0e61e94f">RIP_ERROR</a></div><div class="ttdeci">#define RIP_ERROR</div><div class="ttdef"><b>Definition:</b> <a href="a00371_source.html#l00028">winerrp.h:28</a></div></div>
<div class="ttc" id="aa00638_html_ac0816c73ec6cd096ee9436e038337f80"><div class="ttname"><a href="a00638.html#ac0816c73ec6cd096ee9436e038337f80">_ClipCursor</a></div><div class="ttdeci">BOOL _ClipCursor(LPCRECT prcClip)</div><div class="ttdef"><b>Definition:</b> <a href="a00638_source.html#l00205">cursor.c:205</a></div></div>
<div class="ttc" id="aa00860_html_a386f0678a4f1a1261f1cfd672696933a"><div class="ttname"><a href="a00860.html#a386f0678a4f1a1261f1cfd672696933a">xxxLockWindowUpdate2</a></div><div class="ttdeci">BOOL xxxLockWindowUpdate2(PWND pwndLock, BOOL fThreadOverride)</div><div class="ttdef"><b>Definition:</b> <a href="a00860_source.html#l00758">spb.c:758</a></div></div>
<div class="ttc" id="aa00842_html_adb5204decd255d5005372b2c12890113"><div class="ttname"><a href="a00842.html#adb5204decd255d5005372b2c12890113">xxxBroadcastMessage</a></div><div class="ttdeci">LONG xxxBroadcastMessage(PWND pwnd, UINT message, DWORD wParam, LONG lParam, UINT wCmd, PBROADCASTMSG pbcm)</div><div class="ttdef"><b>Definition:</b> <a href="a00842_source.html#l02898">sendmsg.c:2898</a></div></div>
<div class="ttc" id="aa00842_html_a69cf2e14dcefd941469ad5126e40f79a"><div class="ttname"><a href="a00842.html#a69cf2e14dcefd941469ad5126e40f79a">xxxSendMessage</a></div><div class="ttdeci">LONG xxxSendMessage(PWND pwnd, UINT message, DWORD wParam, LONG lParam)</div><div class="ttdef"><b>Definition:</b> <a href="a00842_source.html#l00613">sendmsg.c:613</a></div></div>
<div class="ttc" id="aa00617_html_a04bef0d1b4ec903d4b1642ebe5e7e0a0"><div class="ttname"><a href="a00617.html#a04bef0d1b4ec903d4b1642ebe5e7e0a0">xxxCapture</a></div><div class="ttdeci">VOID xxxCapture(PTHREADINFO pti, PWND pwnd, UINT code)</div><div class="ttdef"><b>Definition:</b> <a href="a00617_source.html#l00108">capture.c:108</a></div></div>
<div class="ttc" id="aa00257_html_a8315d2c807ba18ba9e528c40614b6173"><div class="ttname"><a href="a00257.html#a8315d2c807ba18ba9e528c40614b6173">PtiCurrent</a></div><div class="ttdeci">PTHREADINFO PtiCurrent(VOID)</div><div class="ttdef"><b>Definition:</b> <a href="a00263_source.html#l00526">winmgrc.c:526</a></div></div>
<div class="ttc" id="aa00689_html_a5fba44a86c81b63bd0bea2c0c3542fc8"><div class="ttname"><a href="a00689.html#a5fba44a86c81b63bd0bea2c0c3542fc8">ResetSharedDesktops</a></div><div class="ttdeci">VOID ResetSharedDesktops(PDISPLAYINFO pDIChanged, PDESKTOP pdeskChanged, LPRECT lprOldWork, DWORD CDS_Flags)</div><div class="ttdef"><b>Definition:</b> <a href="a00689_source.html#l00793">fullscr.c:793</a></div></div>
<div class="ttc" id="aa00860_html_aa5eba0056961545f418184fa87e15982"><div class="ttname"><a href="a00860.html#aa5eba0056961545f418184fa87e15982">FreeAllSpbs</a></div><div class="ttdeci">VOID FreeAllSpbs(PWND pwnd)</div><div class="ttdef"><b>Definition:</b> <a href="a00860_source.html#l01194">spb.c:1194</a></div></div>
<div class="ttc" id="aa02605_html_a76af5d5bf5f5037a7ddcd8bb543fd388"><div class="ttname"><a href="a02605.html#a76af5d5bf5f5037a7ddcd8bb543fd388">tagDISPLAYINFO::pDevInfo</a></div><div class="ttdeci">PPHYSICAL_DEV_INFO pDevInfo</div><div class="ttdef"><b>Definition:</b> <a href="a00365_source.html#l01578">user.h:1578</a></div></div>
<div class="ttc" id="aa00878_html_a384da50d789f362913ef53df4495b559"><div class="ttname"><a href="a00878.html#a384da50d789f362913ef53df4495b559">SetSysColor</a></div><div class="ttdeci">VOID SetSysColor(int icol, DWORD rgb, UINT uOptions)</div><div class="ttdef"><b>Definition:</b> <a href="a00878_source.html#l00097">sysmet.c:97</a></div></div>
<div class="ttc" id="aa00665_html_a7f72492be72deb72088a46321f3703e9"><div class="ttname"><a href="a00665.html#a7f72492be72deb72088a46321f3703e9">ProbeAndCaptureDevmode</a></div><div class="ttdeci">NTSTATUS ProbeAndCaptureDevmode(PUNICODE_STRING pstrDeviceName, PDEVMODEW *DestinationDevmode, PDEVMODEW SourceDevmode, BOOL bKernelMode)</div><div class="ttdef"><b>Definition:</b> <a href="a00665_source.html#l01977">drvsup.c:1977</a></div></div>
<div class="ttc" id="aa00665_html_a74dce85d73485fdf46d61ce465e18061"><div class="ttname"><a href="a00665.html#a74dce85d73485fdf46d61ce465e18061">UserSetDisplayDriverParameters</a></div><div class="ttdeci">NTSTATUS UserSetDisplayDriverParameters(PUNICODE_STRING deviceName, DISP_DRIVER_PARAM_TYPE ParamType, PDEVMODEW pdevmode, PRECT pRect)</div><div class="ttdef"><b>Definition:</b> <a href="a00665_source.html#l01239">drvsup.c:1239</a></div></div>
<div class="ttc" id="aa00899_html_abfae1dfb48db23dcea4494f7990ad6a6"><div class="ttname"><a href="a00899.html#abfae1dfb48db23dcea4494f7990ad6a6">ThreadLock</a></div><div class="ttdeci">VOID ThreadLock(PVOID pobj, PTL ptl)</div></div>
<div class="ttc" id="aa02809_html"><div class="ttname"><a href="a02809.html">tagWINDOWSTATION</a></div><div class="ttdef"><b>Definition:</b> <a href="a00899_source.html#l01744">userk.h:1744</a></div></div>
<div class="ttc" id="aa00953_html_aebb9e13210d88d43e32e735ada43a425"><div class="ttname"><a href="a00953.html#aebb9e13210d88d43e32e735ada43a425">CHAR</a></div><div class="ttdeci">char CHAR</div><div class="ttdef"><b>Definition:</b> <a href="a00953_source.html#l00007">bench.c:7</a></div></div>
<div class="ttc" id="aa00665_html_a291aca25f546e197608f39e4887001a9"><div class="ttname"><a href="a00665.html#a291aca25f546e197608f39e4887001a9">UserGetDeviceFromName</a></div><div class="ttdeci">PPHYSICAL_DEV_INFO UserGetDeviceFromName(PUNICODE_STRING pstrDeviceName, ULONG bShareState)</div><div class="ttdef"><b>Definition:</b> <a href="a00665_source.html#l01451">drvsup.c:1451</a></div></div>
<div class="ttc" id="aa03257_html_ab597263bdbb3441715804712fcf29e6d"><div class="ttname"><a href="a03257.html#ab597263bdbb3441715804712fcf29e6d">gpDispInfo</a></div><div class="ttdeci">PDISPLAYINFO gpDispInfo</div><div class="ttdef"><b>Definition:</b> <a href="a03257_source.html#l00125">kernel/globals.c:125</a></div></div>
<div class="ttc" id="aa00689_html_aff6a0461c096c5f13235d6537112c084"><div class="ttname"><a href="a00689.html#aff6a0461c096c5f13235d6537112c084">xxxMakeWindowForegroundWithState</a></div><div class="ttdeci">void xxxMakeWindowForegroundWithState(PWND pwnd, BYTE NewState)</div><div class="ttdef"><b>Definition:</b> <a href="a00689_source.html#l00140">fullscr.c:140</a></div></div>
<div class="ttc" id="aa02605_html_a81f6c7e5df9c00e3f33e6e1a94ac75fc"><div class="ttname"><a href="a02605.html#a81f6c7e5df9c00e3f33e6e1a94ac75fc">tagDISPLAYINFO::hDev</a></div><div class="ttdeci">HANDLE hDev</div><div class="ttdef"><b>Definition:</b> <a href="a00365_source.html#l01576">user.h:1576</a></div></div>
<div class="ttc" id="aa02513_html_ad47c3c3836f1cb6cfb9ee4dd5d344496"><div class="ttname"><a href="a02513.html#ad47c3c3836f1cb6cfb9ee4dd5d344496">tagSERVERINFO::rcWork</a></div><div class="ttdeci">RECT rcWork</div><div class="ttdef"><b>Definition:</b> <a href="a00365_source.html#l01007">user.h:1007</a></div></div>
<div class="ttc" id="aa02869_html_a97845e5f321fb758821ac99bd53840de"><div class="ttname"><a href="a02869.html#a97845e5f321fb758821ac99bd53840de">tagQ::iCursorLevel</a></div><div class="ttdeci">int iCursorLevel</div><div class="ttdef"><b>Definition:</b> <a href="a00899_source.html#l02185">userk.h:2185</a></div></div>
<div class="ttc" id="aa00689_html_ab4e036cf2cf3a3162fe3ee05da10c457"><div class="ttname"><a href="a00689.html#ab4e036cf2cf3a3162fe3ee05da10c457">fRedoFullScreenSwitch</a></div><div class="ttdeci">BOOL fRedoFullScreenSwitch</div><div class="ttdef"><b>Definition:</b> <a href="a00689_source.html#l00050">fullscr.c:50</a></div></div>
<div class="ttc" id="aa00563_html_a074685e97e89d6aa2accdfcb82328699"><div class="ttname"><a href="a00563.html#a074685e97e89d6aa2accdfcb82328699">DWORD</a></div><div class="ttdeci">ddeml v[i&lt; inst &gt;][t&lt; type &gt;][hObj|pObj] Dump DDEML state information ddeml lists all ddeml instances for this process n ddeml t&lt; type &gt; lists all ddeml objects of the given type n n assumes link is first DWORD</div><div class="ttdef"><b>Definition:</b> <a href="a00563_source.html#l00175">exts.h:175</a></div></div>
<div class="ttc" id="aa00665_html_a744babe1f701ee80c5d81250e69c4db5"><div class="ttname"><a href="a00665.html#a744babe1f701ee80c5d81250e69c4db5">UserSaveCurrentMode</a></div><div class="ttdeci">VOID UserSaveCurrentMode(PDESKTOP pDesktop, PPHYSICAL_DEV_INFO physinfo, LPDEVMODEW lpdevmodeInformation)</div><div class="ttdef"><b>Definition:</b> <a href="a00665_source.html#l00173">drvsup.c:173</a></div></div>
<div class="ttc" id="aa00638_html_a79ebb837219045b09dfd497a1ee41e58"><div class="ttname"><a href="a00638.html#a79ebb837219045b09dfd497a1ee41e58">grcVDMCursorBounds</a></div><div class="ttdeci">RECT grcVDMCursorBounds</div><div class="ttdef"><b>Definition:</b> <a href="a00638_source.html#l00023">cursor.c:23</a></div></div>
<div class="ttc" id="aa01881_html"><div class="ttname"><a href="a01881.html">_TL</a></div><div class="ttdef"><b>Definition:</b> <a href="a00257_source.html#l00347">usercli.h:347</a></div></div>
<div class="ttc" id="aa00689_html_a762f2fbf9a0ad4d9a63f7c92adce1297"><div class="ttname"><a href="a00689.html#a762f2fbf9a0ad4d9a63f7c92adce1297">bMultipleDisplaySystem</a></div><div class="ttdeci">BOOL bMultipleDisplaySystem</div><div class="ttdef"><b>Definition:</b> <a href="a00665_source.html#l00046">drvsup.c:46</a></div></div>
<div class="ttc" id="aa00716_html_acd52966f6d457f68619ccb6006e4fccf"><div class="ttname"><a href="a00716.html#acd52966f6d457f68619ccb6006e4fccf">SetIconMetrics</a></div><div class="ttdeci">VOID SetIconMetrics(LPICONMETRICS lpicon)</div><div class="ttdef"><b>Definition:</b> <a href="a00716_source.html#l01096">inctlpan.c:1096</a></div></div>
<div class="ttc" id="aa00719_html_a8e2c487045938ea775827e2d2e5bca69"><div class="ttname"><a href="a00719.html#a8e2c487045938ea775827e2d2e5bca69">UpdateSystemIconsFromRegistry</a></div><div class="ttdeci">VOID UpdateSystemIconsFromRegistry(VOID)</div><div class="ttdef"><b>Definition:</b> <a href="a00719_source.html#l00955">init.c:955</a></div></div>
<div class="ttc" id="aa02581_html_a2778d611c2b27395e559c94d05732e1f"><div class="ttname"><a href="a02581.html#a2778d611c2b27395e559c94d05732e1f">tagWND::rcWindow</a></div><div class="ttdeci">RECT rcWindow</div><div class="ttdef"><b>Definition:</b> <a href="a00365_source.html#l01398">user.h:1398</a></div></div>
<div class="ttc" id="aa02581_html"><div class="ttname"><a href="a02581.html">tagWND</a></div><div class="ttdef"><b>Definition:</b> <a href="a00365_source.html#l01388">user.h:1388</a></div></div>
<div class="ttc" id="aa03257_html_a01d6b23c241a057b5e276bc3095a01eb"><div class="ttname"><a href="a03257.html#a01d6b23c241a057b5e276bc3095a01eb">gpqForeground</a></div><div class="ttdeci">PQ gpqForeground</div><div class="ttdef"><b>Definition:</b> <a href="a03257_source.html#l00133">kernel/globals.c:133</a></div></div>
<div class="ttc" id="aa00851_html_ae82e6ab5253cf5a51f5e270f6b83ccb7"><div class="ttname"><a href="a00851.html#ae82e6ab5253cf5a51f5e270f6b83ccb7">xxxShowWindow</a></div><div class="ttdeci">BOOL xxxShowWindow(PWND pwnd, DWORD cmdShowAnimate)</div><div class="ttdef"><b>Definition:</b> <a href="a00851_source.html#l00081">showwin.c:81</a></div></div>
<div class="ttc" id="aa00689_html_ac54f401520871421830eeed1d34dd321"><div class="ttname"><a href="a00689.html#ac54f401520871421830eeed1d34dd321">ResetDisplayDevice</a></div><div class="ttdeci">VOID ResetDisplayDevice(PDESKTOP pdesk, PDISPLAYINFO pDI, DWORD CDS_Flags)</div><div class="ttdef"><b>Definition:</b> <a href="a00689_source.html#l00884">fullscr.c:884</a></div></div>
<div class="ttc" id="aa02581_html_a77ea21fd35c425c6a9119e1b42812fb0"><div class="ttname"><a href="a02581.html#a77ea21fd35c425c6a9119e1b42812fb0">tagWND::bFullScreen</a></div><div class="ttdeci">BYTE bFullScreen</div><div class="ttdef"><b>Definition:</b> <a href="a00365_source.html#l01419">user.h:1419</a></div></div>
<div class="ttc" id="aa00689_html_a5c0ed66b17009c8015022673ff5fcbdc"><div class="ttname"><a href="a00689.html#a5c0ed66b17009c8015022673ff5fcbdc">gptSSCursor</a></div><div class="ttdeci">POINT gptSSCursor</div><div class="ttdef"><b>Definition:</b> <a href="a00875_source.html#l00015">syscmd.c:15</a></div></div>
<div class="ttc" id="aa00896_html_aa1a70248d072f47e9072b716708a6918"><div class="ttname"><a href="a00896.html#aa1a70248d072f47e9072b716708a6918">xxxUpdateWindow</a></div><div class="ttdeci">BOOL xxxUpdateWindow(PWND pwnd)</div><div class="ttdef"><b>Definition:</b> <a href="a00896_source.html#l01371">update.c:1371</a></div></div>
<div class="ttc" id="aa00668_html_a68e971c3810a7065f5aba4d5ee40a8f1"><div class="ttname"><a href="a00668.html#a68e971c3810a7065f5aba4d5ee40a8f1">xxxSetDeskWallpaper</a></div><div class="ttdeci">BOOL xxxSetDeskWallpaper(LPWSTR lpszFile)</div><div class="ttdef"><b>Definition:</b> <a href="a00668_source.html#l01094">dtbitmap.c:1094</a></div></div>
<div class="ttc" id="aa00371_html_a41f433389f20db57f042022a662e96de"><div class="ttname"><a href="a00371.html#a41f433389f20db57f042022a662e96de">RIP_WARNING</a></div><div class="ttdeci">#define RIP_WARNING</div><div class="ttdef"><b>Definition:</b> <a href="a00371_source.html#l00029">winerrp.h:29</a></div></div>
<div class="ttc" id="aa00827_html_a3f3a74ea22ded68444f3404548b94874"><div class="ttname"><a href="a00827.html#a3f3a74ea22ded68444f3404548b94874">DesktopRecalc</a></div><div class="ttdeci">VOID DesktopRecalc(LPRECT lprcOldScreen, LPRECT lprcNewScreen, BOOL fProportion)</div><div class="ttdef"><b>Definition:</b> <a href="a00827_source.html#l00344">rare.c:344</a></div></div>
<div class="ttc" id="aa02801_html_ace92d08d0736aef3f0b73273a6e3e5f7"><div class="ttname"><a href="a02801.html#ace92d08d0736aef3f0b73273a6e3e5f7">tagDESKTOP::rpdeskNext</a></div><div class="ttdeci">struct tagDESKTOP * rpdeskNext</div><div class="ttdef"><b>Definition:</b> <a href="a00899_source.html#l01709">userk.h:1709</a></div></div>
<div class="ttc" id="aa00872_html_a71170c4c5e4c60d4bc657fe52eb8d8d2"><div class="ttname"><a href="a00872.html#a71170c4c5e4c60d4bc657fe52eb8d8d2">xxxSetWindowPos</a></div><div class="ttdeci">BOOL xxxSetWindowPos(PWND pwnd, PWND pwndInsertAfter, int x, int y, int cx, int cy, UINT flags)</div><div class="ttdef"><b>Definition:</b> <a href="a00872_source.html#l01169">swp.c:1169</a></div></div>
<div class="ttc" id="aa02869_html_a00f55b93fb49e91ab92e90fde747d716"><div class="ttname"><a href="a02869.html#a00f55b93fb49e91ab92e90fde747d716">tagQ::spwndActive</a></div><div class="ttdeci">PWND spwndActive</div><div class="ttdef"><b>Definition:</b> <a href="a00899_source.html#l02168">userk.h:2168</a></div></div>
<div class="ttc" id="aa00689_html_a646350d4ca26f09d0d0bcf6f70a12042"><div class="ttname"><a href="a00689.html#a646350d4ca26f09d0d0bcf6f70a12042">gbFullScreen</a></div><div class="ttdeci">BYTE gbFullScreen</div><div class="ttdef"><b>Definition:</b> <a href="a00689_source.html#l00053">fullscr.c:53</a></div></div>
<div class="ttc" id="aa02605_html_a263f5b35c44d9f9ae5c74acae8037644"><div class="ttname"><a href="a02605.html#a263f5b35c44d9f9ae5c74acae8037644">tagDISPLAYINFO::rcScreen</a></div><div class="ttdeci">RECT rcScreen</div><div class="ttdef"><b>Definition:</b> <a href="a00365_source.html#l01570">user.h:1570</a></div></div>
<div class="ttc" id="aa02801_html_a7865078d53afb2719414b44d87f75c5d"><div class="ttname"><a href="a02801.html#a7865078d53afb2719414b44d87f75c5d">tagDESKTOP::pDispInfo</a></div><div class="ttdeci">PDISPLAYINFO pDispInfo</div><div class="ttdef"><b>Definition:</b> <a href="a00899_source.html#l01707">userk.h:1707</a></div></div>
<div class="ttc" id="aa03257_html_a106fec4487922d9baa52acc8bfee1c07"><div class="ttname"><a href="a03257.html#a106fec4487922d9baa52acc8bfee1c07">gpqCursor</a></div><div class="ttdeci">PQ gpqCursor</div><div class="ttdef"><b>Definition:</b> <a href="a03257_source.html#l00135">kernel/globals.c:135</a></div></div>
<div class="ttc" id="aa03257_html_a3f749009e2dddfbcdd946cdc60859d5d"><div class="ttname"><a href="a03257.html#a3f749009e2dddfbcdd946cdc60859d5d">gfAnimate</a></div><div class="ttdeci">BOOL gfAnimate</div><div class="ttdef"><b>Definition:</b> <a href="a03257_source.html#l00019">kernel/globals.c:19</a></div></div>
<div class="ttc" id="aa00293_html_a41d387d1b2d42169cbaa2092c8a02abf"><div class="ttname"><a href="a00293.html#a41d387d1b2d42169cbaa2092c8a02abf">ValidateHwnd</a></div><div class="ttdeci">#define ValidateHwnd(hwnd)</div><div class="ttdef"><b>Definition:</b> <a href="a00293_source.html#l00090">immcli.h:90</a></div></div>
<div class="ttc" id="aa00896_html_af920796d5612f833ca2179b07a008e69"><div class="ttname"><a href="a00896.html#af920796d5612f833ca2179b07a008e69">xxxInternalInvalidate</a></div><div class="ttdeci">VOID xxxInternalInvalidate(PWND pwnd, HRGN hrgnUpdate, DWORD flags)</div><div class="ttdef"><b>Definition:</b> <a href="a00896_source.html#l01257">update.c:1257</a></div></div>
<div class="ttc" id="aa03257_html_a6fd7fff34b763d3027988693d59a76be"><div class="ttname"><a href="a03257.html#a6fd7fff34b763d3027988693d59a76be">ghbmCaption</a></div><div class="ttdeci">HBITMAP ghbmCaption</div><div class="ttdef"><b>Definition:</b> <a href="a03257_source.html#l00329">kernel/globals.c:329</a></div></div>
<div class="ttc" id="aa00638_html_a3b1dddef2c0ab8276c2cce2733ced1d9"><div class="ttname"><a href="a00638.html#a3b1dddef2c0ab8276c2cce2733ced1d9">InternalSetCursorPos</a></div><div class="ttdeci">VOID InternalSetCursorPos(int x, int y, PDESKTOP pdesk)</div><div class="ttdef"><b>Definition:</b> <a href="a00638_source.html#l00110">cursor.c:110</a></div></div>
<div class="ttc" id="aa00689_html_a317b5986c94a0fe6aec5cd38123cf2a3"><div class="ttname"><a href="a00689.html#a317b5986c94a0fe6aec5cd38123cf2a3">SetVDMCursorBounds</a></div><div class="ttdeci">void SetVDMCursorBounds(LPRECT lprc)</div><div class="ttdef"><b>Definition:</b> <a href="a00638_source.html#l00357">cursor.c:357</a></div></div>
<div class="ttc" id="aa02809_html_aafbda282c78d875d4491cf817366dc1b"><div class="ttname"><a href="a02809.html#aafbda282c78d875d4491cf817366dc1b">tagWINDOWSTATION::rpdeskList</a></div><div class="ttdeci">struct tagDESKTOP * rpdeskList</div><div class="ttdef"><b>Definition:</b> <a href="a00899_source.html#l01746">userk.h:1746</a></div></div>
<div class="ttc" id="aa02889_html_abb1184e0c5805b5ad89b79dcc2bd17c8"><div class="ttname"><a href="a02889.html#abb1184e0c5805b5ad89b79dcc2bd17c8">tagTHREADINFO::rpdesk</a></div><div class="ttdeci">PDESKTOP rpdesk</div><div class="ttdef"><b>Definition:</b> <a href="a00899_source.html#l02288">userk.h:2288</a></div></div>
<div class="ttc" id="aa00608_html_a6c96372198152be76c02728ab8e49dce"><div class="ttname"><a href="a00608.html#a6c96372198152be76c02728ab8e49dce">UserSleep</a></div><div class="ttdeci">VOID UserSleep(DWORD dwMilliseconds)</div><div class="ttdef"><b>Definition:</b> <a href="a00608_source.html#l00083">base.c:83</a></div></div>
<div class="ttc" id="aa00842_html_a4a4a6ef58238afeb2930d10ed87d2853"><div class="ttname"><a href="a00842.html#a4a4a6ef58238afeb2930d10ed87d2853">QueueNotifyMessage</a></div><div class="ttdeci">void QueueNotifyMessage(PWND pwnd, UINT message, DWORD wParam, LONG lParam)</div><div class="ttdef"><b>Definition:</b> <a href="a00842_source.html#l00888">sendmsg.c:888</a></div></div>
<div class="ttc" id="aa02605_html_a2458aa3b22e3415ba05fc9fba634628d"><div class="ttname"><a href="a02605.html#a2458aa3b22e3415ba05fc9fba634628d">tagDISPLAYINFO::cyPixelsPerInch</a></div><div class="ttdeci">UINT cyPixelsPerInch</div><div class="ttdef"><b>Definition:</b> <a href="a00365_source.html#l01581">user.h:1581</a></div></div>
<div class="ttc" id="aa00689_html_a18707a2877a1444421decffc9e2efb3e"><div class="ttname"><a href="a00689.html#a18707a2877a1444421decffc9e2efb3e">NOSWITCHER</a></div><div class="ttdeci">#define NOSWITCHER</div><div class="ttdef"><b>Definition:</b> <a href="a00689_source.html#l00047">fullscr.c:47</a></div></div>
<div class="ttc" id="aa02601_html_a11272e040ff3989da159f50e88b7b8c6"><div class="ttname"><a href="a02601.html#a11272e040ff3989da159f50e88b7b8c6">tagPHYSICAL_DEV_INFO::cbdevmodeInfo</a></div><div class="ttdeci">ULONG cbdevmodeInfo</div><div class="ttdef"><b>Definition:</b> <a href="a00365_source.html#l01552">user.h:1552</a></div></div>
<div class="ttc" id="aa00899_html_ac2181d07596893ed44d18aa267ce4d23"><div class="ttname"><a href="a00899.html#ac2181d07596893ed44d18aa267ce4d23">LeaveCrit</a></div><div class="ttdeci">VOID LeaveCrit(VOID)</div></div>
<div class="ttc" id="aa03257_html_adf0068988d4823d1fa1a18bca501899e"><div class="ttname"><a href="a03257.html#adf0068988d4823d1fa1a18bca501899e">TraceDisplayDriverLoad</a></div><div class="ttdeci">LONG TraceDisplayDriverLoad</div><div class="ttdef"><b>Definition:</b> <a href="a03257_source.html#l00507">kernel/globals.c:507</a></div></div>
<div class="ttc" id="aa03608_html_afd1a0e78d1f88954d93e48ab3821781f"><div class="ttname"><a href="a03608.html#afd1a0e78d1f88954d93e48ab3821781f">UINT</a></div><div class="ttdeci">typedef UINT(FAR WINAPI *MSGSOUNDPROC)()</div></div>
<div class="ttc" id="aa00899_html_afc13cb8b9a1ddb236b66ee390aa8efdda6760d6d8884c7ede93accae00a0e84b1"><div class="ttname"><a href="a00899.html#afc13cb8b9a1ddb236b66ee390aa8efdda6760d6d8884c7ede93accae00a0e84b1">DispDriverParamDefault</a></div><div class="ttdeci">@ DispDriverParamDefault</div><div class="ttdef"><b>Definition:</b> <a href="a00899_source.html#l03345">userk.h:3345</a></div></div>
<div class="ttc" id="aa02869_html_a683294acdd2ae8355c6cfbf49c260374"><div class="ttname"><a href="a02869.html#a683294acdd2ae8355c6cfbf49c260374">tagQ::spcurCurrent</a></div><div class="ttdeci">PCURSOR spcurCurrent</div><div class="ttdef"><b>Definition:</b> <a href="a00899_source.html#l02184">userk.h:2184</a></div></div>
<div class="ttc" id="aa02601_html_a671c14f1e07dff0246711968044db9c4"><div class="ttname"><a href="a02601.html#a671c14f1e07dff0246711968044db9c4">tagPHYSICAL_DEV_INFO::pDeviceHandle</a></div><div class="ttdeci">PVOID pDeviceHandle</div><div class="ttdef"><b>Definition:</b> <a href="a00365_source.html#l01546">user.h:1546</a></div></div>
<div class="ttc" id="aa00899_html_a70b09c3e2b495630f4205d34be505afb"><div class="ttname"><a href="a00899.html#a70b09c3e2b495630f4205d34be505afb">CheckLock</a></div><div class="ttdeci">VOID CheckLock(PVOID pobj)</div></div>
<div class="ttc" id="aa03257_html_a786cd01671f99939368eaa4f602f2410"><div class="ttname"><a href="a03257.html#a786cd01671f99939368eaa4f602f2410">gpFullscreenFrameBufPtr</a></div><div class="ttdeci">PCHAR gpFullscreenFrameBufPtr</div><div class="ttdef"><b>Definition:</b> <a href="a03257_source.html#l00079">kernel/globals.c:79</a></div></div>
<div class="ttc" id="aa02609_html_a68937d60a6f49b7a8431db62b38ea721"><div class="ttname"><a href="a02609.html#a68937d60a6f49b7a8431db62b38ea721">tagDESKTOPINFO::spwnd</a></div><div class="ttdeci">struct tagWND * spwnd</div><div class="ttdef"><b>Definition:</b> <a href="a00365_source.html#l01603">user.h:1603</a></div></div>
<div class="ttc" id="aa03257_html_a2bbf28771d074083b01444a97409814e"><div class="ttname"><a href="a03257.html#a2bbf28771d074083b01444a97409814e">gfLockFullScreen</a></div><div class="ttdeci">BOOL gfLockFullScreen</div><div class="ttdef"><b>Definition:</b> <a href="a03257_source.html#l00077">kernel/globals.c:77</a></div></div>
<div class="ttc" id="aa00689_html_a387a17388d6fb6bc7ecd24bc5826427e"><div class="ttname"><a href="a00689.html#a387a17388d6fb6bc7ecd24bc5826427e">fGdiEnabled</a></div><div class="ttdeci">BOOL fGdiEnabled</div><div class="ttdef"><b>Definition:</b> <a href="a00689_source.html#l00051">fullscr.c:51</a></div></div>
<div class="ttc" id="aa02801_html_a1c13c2279af7d47e5b6bec7434d77812"><div class="ttname"><a href="a02801.html#a1c13c2279af7d47e5b6bec7434d77812">tagDESKTOP::bForceModeReset</a></div><div class="ttdeci">BOOL bForceModeReset</div><div class="ttdef"><b>Definition:</b> <a href="a00899_source.html#l01722">userk.h:1722</a></div></div>
<div class="ttc" id="aa03257_html_a326757fcfe334f2ffd59d64d4645d37a"><div class="ttname"><a href="a03257.html#a326757fcfe334f2ffd59d64d4645d37a">grpdeskRitInput</a></div><div class="ttdeci">PDESKTOP grpdeskRitInput</div><div class="ttdef"><b>Definition:</b> <a href="a03257_source.html#l00187">kernel/globals.c:187</a></div></div>
<div class="ttc" id="aa00935_html_a31ccccdb469eefbb55d18b71a26af0da"><div class="ttname"><a href="a00935.html#a31ccccdb469eefbb55d18b71a26af0da">CopyRect</a></div><div class="ttdeci">BOOL APIENTRY CopyRect(LPRECT prcDst, CONST RECT *prcSrc)</div><div class="ttdef"><b>Definition:</b> <a href="a00935_source.html#l00391">rect.c:391</a></div></div>
<div class="ttc" id="aa02605_html_ad3e0b5376b5114f4269df20805a3a85e"><div class="ttname"><a href="a02605.html#ad3e0b5376b5114f4269df20805a3a85e">tagDISPLAYINFO::cxPixelsPerInch</a></div><div class="ttdeci">UINT cxPixelsPerInch</div><div class="ttdef"><b>Definition:</b> <a href="a00365_source.html#l01580">user.h:1580</a></div></div>
<div class="ttc" id="aa02581_html_a17d59d04094aef8b577c0aa781cdf2c6"><div class="ttname"><a href="a02581.html#a17d59d04094aef8b577c0aa781cdf2c6">tagWND::rcClient</a></div><div class="ttdeci">RECT rcClient</div><div class="ttdef"><b>Definition:</b> <a href="a00365_source.html#l01399">user.h:1399</a></div></div>
<div class="ttc" id="aa00020_html_ad760da1dd81d9e84dee607d18edfde39"><div class="ttname"><a href="a00020.html#ad760da1dd81d9e84dee607d18edfde39">gpsi</a></div><div class="ttdeci">PSERVERINFO gpsi</div><div class="ttdef"><b>Definition:</b> <a href="a00020_source.html#l00039">clglobal.c:39</a></div></div>
<div class="ttc" id="aa00899_html_a792b9004a4d313da382f9a9fd8b5c1aa"><div class="ttname"><a href="a00899.html#a792b9004a4d313da382f9a9fd8b5c1aa">_GetProcessWindowStation</a></div><div class="ttdeci">PWINDOWSTATION _GetProcessWindowStation(HWINSTA *)</div><div class="ttdef"><b>Definition:</b> <a href="a00920_source.html#l00891">winsta.c:891</a></div></div>
<div class="ttc" id="aa02601_html_a1fe37d9234f46b11eab06dbfbafab7e9"><div class="ttname"><a href="a02601.html#a1fe37d9234f46b11eab06dbfbafab7e9">tagPHYSICAL_DEV_INFO::devmodeInfo</a></div><div class="ttdeci">PDEVMODEW devmodeInfo</div><div class="ttdef"><b>Definition:</b> <a href="a00365_source.html#l01553">user.h:1553</a></div></div>
<div class="ttc" id="aa00899_html_ab5b6a53d2b84dedad66b13f7f4b8c035"><div class="ttname"><a href="a00899.html#ab5b6a53d2b84dedad66b13f7f4b8c035">CalcVisRgn</a></div><div class="ttdeci">BOOL CalcVisRgn(HRGN *hrgn, PWND pwndOrg, PWND pwndClip, DWORD flags)</div><div class="ttdef"><b>Definition:</b> <a href="a00905_source.html#l00441">visrgn.c:441</a></div></div>
<div class="ttc" id="aa02601_html_a19bee6963f84c40169f417b39bc46059"><div class="ttname"><a href="a02601.html#a19bee6963f84c40169f417b39bc46059">tagPHYSICAL_DEV_INFO::pCurrentDevmode</a></div><div class="ttdeci">PDEVMODEW pCurrentDevmode</div><div class="ttdef"><b>Definition:</b> <a href="a00365_source.html#l01551">user.h:1551</a></div></div>
<div class="ttc" id="aa00665_html_ae1691bdb53d715053026f55f68e5d3f4"><div class="ttname"><a href="a00665.html#ae1691bdb53d715053026f55f68e5d3f4">UserFreeDevice</a></div><div class="ttdeci">VOID UserFreeDevice(PPHYSICAL_DEV_INFO physInfo)</div><div class="ttdef"><b>Definition:</b> <a href="a00665_source.html#l01721">drvsup.c:1721</a></div></div>
<div class="ttc" id="aa00719_html_aa6a4ca775f97490e22f8ecac65cdc03f"><div class="ttname"><a href="a00719.html#aa6a4ca775f97490e22f8ecac65cdc03f">UpdateSystemCursorsFromRegistry</a></div><div class="ttdeci">VOID UpdateSystemCursorsFromRegistry(VOID)</div><div class="ttdef"><b>Definition:</b> <a href="a00719_source.html#l00899">init.c:899</a></div></div>
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="dir_885cc87fac2d91e269af0a5a959fa5f6.html">E:</a></li><li class="navelem"><a class="el" href="dir_4e091ed8704426a7a4980368ba259fde.html">git</a></li><li class="navelem"><a class="el" href="dir_cd70cb5eb491250157f2d55d3ff4b13e.html">backup</a></li><li class="navelem"><a class="el" href="dir_ba2b673b566ba104b956abdc6dec0552.html">org</a></li><li class="navelem"><a class="el" href="dir_5bb0003d7907b45051943541418399f5.html">ntuser</a></li><li class="navelem"><a class="el" href="dir_2a0a56546b70a0973705719e6a88eab3.html">kernel</a></li><li class="navelem"><a class="el" href="a00689.html">fullscr.c</a></li>
    <li class="footer">制作者
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
  </ul>
</div>
</body>
</html>
